- 找出程序中会变化的方面,然后将其和固定不变的方面相分离
- 在观察者模式中,会改变的是:主题的状态和观察者的数目和类型.
- 用观察者模式,你可以改变依赖于主题状态的对象,却不必改变主题。这就是提前规划。。
- 针对接口编程而不是针对实现编程
- 主题和观察者都使用接口,观察者利用主题的接口向主题注册。
- 主题利用接口通知观察者,这样可以让两者之间运作正常,又同时具有松耦合的优点。
- 多用组合,少用继承
观察者模式利用"组合"将许多观察者组合进主题中。通过运行时组合产生依赖关系,而不是继承来。