观察者模式,也就是说一个对象在观察另一个对象的变更(其实是一个对象对另外一个对象的依赖,因为依赖,所以需要观察)。需要说明的是,这种观察是一对多的,一个对象可以观察多对象,一个对象也可以被多个对象观察。
从概念的解释上来说,是观察,而从模式实现上来讲,其实是刚好反过来的模式,如果被观察者发生了变化,那么需要通知观察者。或者说,这是一种被动的观察。
由被观察者管理观察者(新增或者删除观察者,所有的观察者均实现相同的接口,有相同的方法被告知被观察者发生了变化),并且被观察者如果发生了变化,需要逐一通知所有的观察者。
定义观察者接口,定义被观察者接口,定义被观察者抽象类,在抽象类中统一处理对观察者们的管理,对观察者们的逐一通知。有被观察者的实现子类去完成具体的变化操作,并且调用父类(被观察者抽象类)的逐一通知观察者们的方法。