Observer(观察者/发布-订阅)模式

  1. 特点:它有两个名字:观察者、发布-订阅,个人觉得发布-订阅更为贴切,观察者更突出主动性行为或角色,那么被观察者就容易被忽视,不便于整体理解,发布-订阅就比较容易理解。
    举个例子,在互联网还没有普及的时候,新闻都是通过报纸向社会中传递,条件好的家庭,可能就会向报社订阅每天的新闻报纸,到这就很容易看出,报社就是发布信息者,家庭是订阅信息者,报纸就是携带信息(数据)的载体。如果用观察者解释,报社就是被观察者,家庭是观察者。
  2. 角色
角色名称 角色职责
Subject(被观察者) 数据的发送方,定义管理观察者相关接口
ConcreteSubject(实体被观察者) 继承Subject实现具体接口逻辑
Observer(观察者) 数据的接受方,定义处理数据的相关接口
ConcreteObserver(实体观察者) 继承Observer实现具体的数据处理逻辑
  1. 角色关系

    Observer.png

  2. 代码示例:Observer

以上文献参考:《图解设计模式》

你可能感兴趣的:(Observer(观察者/发布-订阅)模式)