观察者模式

观察者模式定义

一个目标对象管理所有相依于它的观察者对象,在它本身的状态发生改变的时候,主动发出通知,观察它的对象将会收到通知,做一些具体操作。所以观察者模式又叫做发布-订阅模式。

观察者模式详解

使用场景

  1. 生活中比如订阅了一个公众号,比如订阅了某种报纸。
  2. 一个抽象的模型有两个方面,一个方面的改变必须依赖于另一个方面的改变。这样就可以将这两个方便独立起来,使用观察者模式。
  3. 一个对象必须要通知其它对象,但是不知道其它对象有哪些。

图解

07 观察者模式流程图.png

观察者模式优缺点

优点

  1. 可以让类之间隔离,定义了稳定的消息更新传递机制,抽象了更新接口,让各个被通知的类具体处理自己的更新操作。
  2. 观察者支持广播通信。

缺点

  1. 如果一个对象有很多的观察者,那么通知所有的观察者会花费很多时间。
  2. 如果系统没有用好,观察者和目标之间有循环依赖,那么就会导致系统崩溃。

观察者模式总结

设计模式中观察者模式定义了对象中的一对多的关系,其中一个对象发生变化时就主动通知观察了它的对象,让那些观察的对象操作自己的业务逻辑。