一、应用场景
定义对象间一种一对多的依赖关系,使得当一个对象的状态改变,则所有依赖于它的对象都会得到通知并被自动更新。
就是一种一对多的广播机制。 订阅者或者消息接收者称为观察者。
二、 实现要点
1. 观察者接口,声明update方法用于更新数据。
2. 观察者实现类,implements 观察者接口的update方法。
3. 主题类,在其中包含容纳所有观察者的list, 通知所有观察者的方法,以及注册、删除观察者的方法。
4. 具体主题类(最好定义,也可以不定义直接放在主题类中),包含可以改变的状态,在改变状态时调用通知方法。
三、代码实现
我们就以《三国演义》中曹操割须弃袍这个故事来实现一个观察者模式。