观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
观察者模式属于行为型模式,行为型模式关注的是对象之间的通讯,观察者模式就是观察者和被观察者之间的通讯。
收通知的就是观察者。
优缺点
优点:
观察者和被观察之间抽象耦合,自有一套触发机制,被观察者无需知道通知对象是谁,只要是符合观察者接口的就可以。
缺点:
观察者只知道被观察发生变化,而无法知道是如何发生变化的,比如是修改了 name 字段还是其他,观察者都不知道。
如果有很多个观察者,一个个通知比较耗时。