GOF意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。(一个类(观察者)的行为依赖另一个类(被观察者)的行为)
角色:
1 抽象主题(Subject):抽象被观察者,维持有一个观察者列表,可以添加和删除,被观察这变化的时候调用或通知观察者。
2 具体主题(ConcreteSubject): 具体被观察者。
3 抽象观察者(Observer):抽象观察者,接受被观察者的调用或通知从而改变自己。
4 具体观察者(ConcreteObserver):具体观察者,
实现要点:
被观察者Subject维持一个观察者Observer列表,被观察者变化时调用观察者的方法。