设计模式学习之观察者模式
2018-11-20 本文已影响15人
满天星爱我
定义
定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
设计原则
- 为了交互对象之间的松耦合设计而努力
松耦合的设计之所以能建立有弹性的00系统,能够应对变化,是因为对象之间的互相依赖降到了最低 - 找出程序中会变化的方面,然后将其和固定不变的方面相分离
- 针对接口编程,不针对实现编程
- 多用组合,少用继承
要点
- 观察者模式定义了对象之间一对多的关系
- 主题(也就是可观察者)用一个共同的接口来更新观察者
- 观察者和可观察者之间用松耦合方式结合,可观察者不知道观察者的细节,只知道观察者实现了观察者接口
- 使用此模式时,你可从被观察者处推(push)或拉(pull)数据(然后,推的方式被认为更正确)
- 由多个观察者时,不可以依赖特定的通知次序
java.util.Observable
实现了它的notifyObservers
方法,导致通知观察者的次序发生了改变。 - 注意
java.util.Observable
实现上所带来的一些问题