大话设计模式-第14章 老板回来,我不知道--观察者模式- 高飞网

第14章 老板回来,我不知道--观察者模式

2016-02-02 11:43:46.0

观察者模式(Observer):又叫做发布-订阅模式(Publish/Subscribe):定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主对象在状态发生变化时,会通知所有观察者对象,使它们能够自己更新自己。  

下面是观察者模式类图:


特点:将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,这样会给维护、扩展和重用都带来不便。
场景:当一个对象的改变需要同时改变其他对象,而且它不知道有多少对象待改变的时候,应该考虑使用观察者模式。

不足:当系统已经形成,而且众多观察者角色,并没有使用相同的接口时(如上面的update方法),就没法用现在的方式使用观察者模式了。