观察者模式,也叫发布-订阅模式,定义了一种一对多的依赖关系,让多个观察者对象可以同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使观察者能够自动的更新自己。
观察者模式的层次结构
抽象角色可以是接口,也可以是抽象类,我们按接口的方式来举例
- 抽象通知者:基本结构为通知观察者、添加观察者和删除观察者,比如add(),delete(),notify()这些方法,如下图的Informer
- 具体通知者:根据具体环境需求并实现抽象通知者所要求的接口的角色,如下图的ConcreteInformer
- 抽象观察者:基本结构为收到通知后的行为,比如update(),如下图的Observer接口
- 具体观察者:根据具体环境需求实现抽象观察者的角色,如下图的ConcreteObserver
原文
https://juejin.im/post/5b2f8c29f265da595c0cfde2