0%

DesignPattern-Observer(观察者模式)

1 引入

我们知道在报社订阅报纸的逻辑是:

  • ①、报社的业务就是出版报纸。
  • ②、向某家报社订阅报纸,只要他们有新报只出版,就会给你用来。只要你是他们的订阅用户,你就会一直收到报纸。
  • ③、当你不想再看报纸的时候,取消订阅,他们就不会再送新报纸来。
  • ④、只要报社还在运营,就会一直有人(或单位)向他们订阅报纸或取消订阅报纸。

观察者模式就和订阅报纸类似,可以说观察者模式=出版者+订阅者,只是出版者改称为“主题”,订阅者改称为“观察者

2 Observer(观察者模式)

观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有的依赖都会收到通知并自动更新。通过接口对观察者与被观察者进行逻辑解耦,降低二者的直接耦合。

(观察者模式的实现方式不止一种,但是以包含SubjectObserver接口的做法最常见。 )

类图如下:

Observer_UML


参考资料

Head First设计模式 第五章(P37)