1.观察者模式概念
简单介绍
报社的业务是出版报纸,用户向该报社订购报纸,只要报社有新报纸出版,就会给你送来,一直收到新报纸。当你不想再看报纸时,取消订阅,就不会送来新报纸。
出版者+订阅者=观察者模式
观察模式与出版者,订阅者类似,出版者改称为“主题”(Subject),订阅者改称为“观察者”(Obserber)。
观察者模式
定义了对象之间的一对多依赖,当一个对象改变时,它的所有依赖者都会收到通知并自动更新。
主题和观察者定义了一对多的关系,观察者依赖于此主题。实际编程中Subject与Observer接口的类设计的做法最常见。
2.设计原则
新的设计原则
- 为了交互对象之间的松耦合设计而努力。
到目前所了解的设计原则
- 封装变化的部分
- 多用组合,少用继承
- 这对接口编程,不针对实现编程
- 为交互对象之间的松耦合设计而努力。
3.实际应用
java中内置的观察者模式
java.util包内包含基本的Observer接口与Observable类,可以使用推(push)或拉(pull)的方式传数据。