XXX项目中观察者模式解析

一、观察者模式的定义

  观察者模式是一种行为设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有依赖于它的观察者对象,使它们能够自动更新自己的行为;这些观察者之间也没有相互联系,它们仅根据需求自己去attach主题对象,而主题对象并不知道也不关心观察者有哪些,做到了在两个模块间划定清晰的界线,

二、观察者模式的结构

  观察者模式必须包含两个角色:观察者和被观察对象。然而,观察者和被观察对象之间的互动关系不能体现成类之间的直接调用,否则就将使观察者和被观察对象之间紧密的耦合起来,从根本上违反面向对象的设计原则。根据面向接口编程的原则,则自然就有抽象主题角色和抽象观察者角色。

  观察者模式包含四个角色:目标又称为主题,它是指被观察的对象;具体目标是目标类的子类,通常它包含有经常发生改变的数据,当它的状态发生改变时,向它的各个观察者发出通知;观察者将对观察目标的改变做出反应;在具体观察者中维护一个指向具体目标对象的引用,它存储具体观察者的有关状态,这些状态需要和具体目标的状态保持一致。

  1.观察者模式的类图

三、观察者模式的角色

四、观察者模式与发布-订阅模式、监听回调机制的区别

五、观察者模式的应用场合

六、观察者模式的实例

七、观察者模式的缺点

猜你喜欢

转载自www.cnblogs.com/dmzxxmeng/p/9845409.html