目的 该模式针对的是对象间的一对多的依赖关系,当被依赖对象状态发生改变时,就会通知并更新所有依赖它的对象
应用场景 对象改变的同时需要通知其他的对象。比如微信公众号与订阅公众号的用户,这里关系比较适合观察者模式
构成 抽象主题、具体主题、抽象观察者、具体观察者
备注 该模式又被称为发布——订阅模式,这个定义能更好地帮助理解

 

 

 

 

 

观察者模式由抽象主题、具体主题、抽象观察者、具体观察者等组成。

(1)抽象主题:将全体观察者对象的引用存入至某一个列表中,提供某一接口用于添加或删除观察者对象。

(2)具体主题:实现抽象主题中的通知方法,当具体主题的内部状态发生改变时,通知所有注册的观察者对象

(3)抽象观察者:定义某一类接口,让全体具体观察者,获取更新通知

(4)具体观察者:抽象观察者的实现,以便在得到目标的更改通知时更新自身的状态。