设计模式之观察者模式-学习笔记

一、定义

定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。

通俗理解:

观察者模式的核心是:出版社(object)+订阅者(observer),可以想象为报纸订阅类设计。

subject的interface:

<<interface>>
Subject:
registerObserver()
removeObserver()
notifyObserver()

observer的interface:

<<interface>>
Observer:
update()

二、原则

  1. 讲交互对象设计为松耦合。建立弹性OO系统,应对变换,将对象间相互依赖降到最低。

三、问题

1、一个主题(object)和多个观察者(observer)有什么关联?

答案:object具有某些数据,但是observer要使用这些数据,但数据不属于observer。observer需要依赖subject告诉observer使用‘改变了’的数据。

2、subject与observer依赖如何产生?

答案:subject真正拥有数据,observer是subject的依赖者。当数据更新时,比让多个对象控制同一个数据,更加OO。

四、代码