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