定义:对象中定义了一种1对多的依赖关系,使得当其所以赖的对象的状态改变时,各个对象可以自动地接收到通知,并进行更新. 优点: - 降低了程序的耦合性.把观察者与被观察者分离,并将二者间的关系通过抽象观察者和抽象被观察者联系在一起,当一方发生变化时不会影响另一方的执行。
- 可以支持多种不同的具体观察者实现,有利于程序的扩展。
- 以注册的方式添加和移除观察者,观察者的数目是可变的,可以动态的增加或移除观察者对象。
- 建立一套触发机制.把单一职责的类串联起来.
缺点:
- 很多个观察者时,执行效率比较低.
- 多级触发将使代码非常复杂.
应用场景: - 关联行为场景.
- 事件多级触发场景.
- 跨系统的消息交换.
代码: https://github.com/DewMaple/DesignMode_Java/blob/master/src/com/design_mode/ObserverPattern.java
|