观察者模式又叫发布订阅(Publish/Subscribe)模式
当一个对象的改变需要同时改变其他对象的时候,我们采用此模式。此模式可以让两方面封装在独立的对象中使他们各自独立地改变和复用。
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。

Observer.PNG
Subject类,一般为一个抽象类或者接口。它将所有对观察者对象的引用存在一个集合中,每个具体的通知者有任意数量的观察者。此类提供接口,可以增删观察者对象。
Observer类,抽象观察者,为所有具体观察者提供一个接口,在接受通知的时候更新自己。这个接口叫更新接口。