观察者模式

标签(空格分隔): 设计模式


行为型模式。

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

不知道观察者有多少个,观察者可以动态绑定和解绑。

具体实现:
Subject角色:抽象角色,用来存放所有观测者,即聚集一个Observer的list,提供绑定观测者和解绑观测者的借口,其实就是把Observe放进list和从list中删除。

具体主题(ConcreteSubject):继承Subject的类。将有关状态存入具体观察者对象;在具体主题内部状态改变时,给所有登记过的观察者发出通知。即notifyAllObserver的方法,一旦状态改变,马上调用这个方法通知所有观察者,具体是遍历观察者列表,调用它们的update方法。

观察者接口(Observer):为所有的具体观察者定义一个接口,在得到主题通知时更新自己,包含一个update方法。

具体观察者(ConcreteObserver):实现抽象观察者角色所要求的update接口,以便使本身的状态与主题状态协调。

原文地址:https://www.cnblogs.com/banyu/p/6817288.html