一、观察者模式的定义
观察者模式是一种行为设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有依赖于它的观察者对象,使它们能够自动更新自己的行为;这些观察者之间也没有相互联系,它们仅根据需求自己去attach主题对象,而主题对象并不知道也不关心观察者有哪些,做到了在两个模块间划定清晰的界线,
二、观察者模式的结构
观察者模式必须包含两个角色:观察者和被观察对象。然而,观察者和被观察对象之间的互动关系不能体现成类之间的直接调用,否则就将使观察者和被观察对象之间紧密的耦合起来,从根本上违反面向对象的设计原则。根据面向接口编程的原则,则自然就有抽象主题角色和抽象观察者角色。
观察者模式包含四个角色:目标又称为主题,它是指被观察的对象;具体目标是目标类的子类,通常它包含有经常发生改变的数据,当它的状态发生改变时,向它的各个观察者发出通知;观察者将对观察目标的改变做出反应;在具体观察者中维护一个指向具体目标对象的引用,它存储具体观察者的有关状态,这些状态需要和具体目标的状态保持一致。
1.观察者模式的类图
三、观察者模式的角色
四、观察者模式与发布-订阅模式、监听回调机制的区别
五、观察者模式的应用场合
六、观察者模式的实例
七、观察者模式的缺点