观察者模式
一 场景
在软件开发中,有时候一个对象状态的变化,会导致其他一系列对象的状态或行为也发生变化。我们有时候甚至不知道这些随之变化的对象是谁,也不清楚有多少这样的对象。
对于这种对象之间的联动,系统为了保持对象之间状态的一致性,可能会使各个对象之间产生一定的耦合。这样就会给系统的维护和扩展带来一些不便。
针对上述情况,我们就可以使用观察者模式。观察者模式可以让联动的对象都依赖于抽象,而不是依赖于具体的对象,这样就使得一边对象的变化不会影响另一边的对象。
二 定义
观察者模式定义了对象之间的一种一对多的依赖关系,当一个对象改变状态时,其相关依赖的所有对象都会得到通知并被自动更新。观察者模式是一种对象行为型模式。
三 类图
Subject(抽象主题):抽象主题中会声明一个观察者的集合,把所有引用的观察者对象都保存在这个集合中。抽象主题同时会定义增加和删除观察者的方法。主题还会定义通知方法notice()。主题可以是接口,也可以是抽象类或者一个具体类。
·
ConcreteSubject