1 引入
我们知道在报社订阅报纸的逻辑是:
- ①、报社的业务就是出版报纸。
- ②、向某家报社订阅报纸,只要他们有新报只出版,就会给你用来。只要你是他们的订阅用户,你就会一直收到报纸。
- ③、当你不想再看报纸的时候,取消订阅,他们就不会再送新报纸来。
- ④、只要报社还在运营,就会一直有人(或单位)向他们订阅报纸或取消订阅报纸。
观察者模式就和订阅报纸类似,可以说观察者模式=出版者+订阅者
,只是出版者改称为“主题
”,订阅者改称为“观察者
”
2 Observer(观察者模式)
观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有的依赖都会收到通知并自动更新。通过接口对观察者与被观察者进行逻辑解耦,降低二者的直接耦合。
(观察者模式的实现方式不止一种,但是以包含Subject
和Observer
接口的做法最常见。 )
类图如下:
参考资料
Head First设计模式 第五章(P37)