第二坑之观察者模式。
大话(From Head First),在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。
通俗(From me),类似于订阅和取消订阅等,订阅了报纸,它更新就会通知你去拿。
模式具体信息,分为两大对象,观察者和主题或者叫可被观察者。这两大对象可抽象为接口类,可被观察者有注册观察者、删除观察者、通知观察者,观察者需要有个update功能来承接来自可被观察者的通知。这就是观察者的核心接口。
注意:实现观察者接口时,类的构造函数必须传入所要关注的对象。
部分观点:
为交互对象之间的松耦合设计而努力。被观察者不用在意观察者的类型,只需面对同一的接口update。而观察者只用在update中实现自己所需的功能。对象间的松耦合。
java中有实现好的观察者模式,在java.util下的Observable和Observer,不过Observable是一个类,只能去继承实现。缺点显而易见,上一节说过,“有一个”可能比“是一个”好,具体有关Observer如何使用可以自行度娘,不赘述。另外,java中的各种Listener也是观察者模式的一种实现。
2014/10/22
CatoldCui