设计模式笔记8: 观察者模式
1.1 定义
定义了一种一对多的依赖关系,让多个观察者同时监听一个对象,但这个对象发生变化时,会通知所有观察者对象,使他们能够更新自己。
1.2 类图
1.3 代码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
调用:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1.4 总结
我们定义观察者和通知者和通知者两个抽象父类都是为了面向抽象编程,以后再增加新的功能时增加新的类,而不修改原有的子类。 还有一个耦合:我们通知者对象通知观察者时执行的方法都是同一个方法。方法的执行体虽然已经被观察者重写,但是名字还是一致的。所以我们在通知者中增加了委托类型的成员,只需要将通知观察者的方法,注册给通知者的委托成员。这样就能完全自定义执行的方法了。