1 设计原则
为交互对象之间的 松耦合设计 而努力.
2 观察者模式
在对象之间定义 一对多 的依赖, 当一个对象改变状态时, 依赖它的对象都会收到通知, 并执行自己的逻辑.
使用观察者模式时, 有人在实例化观察者时 传入 subject
对象, 并把当前的观察者对象注册到 subject
中, 比如示例1 和 示例2.
也有人在实例化观察者时 不传入 subject
对象, 只是单纯的实例化一个观察者, 然后再通过 subject
的 register()
(或 add()
) 方法注册到 subject
中. 比如《Head First 设计模式》中的观察者模式实现.
其实这不重要, 学习观察者模式 的最重要的是, 要知道它 通过定义一对多的依赖关系 实现 对象之间的松耦合.
3 使用案例
观察者模式使用案例:
- 对订单数据进行多维度的校验.
- 当订单状态改变时, 通知不同的模块(观察者)做相应的处理.