观察者模式又叫发布-订阅模式,它定义对象间的一对多关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
设计原因是:如果我们把一个系统分割成一系列相互协作的类,这时需要维护相关对象间的一致性,但我们又不希望为了维持一致性而使各类紧密耦合,为了防止这种情况带来降低类的重用性所以设计了观察者模式。