Advertisement

第七个设计模式:观察者模式(Observer);

阅读量:

观察者模式(亦称发布/订阅模式)确立了对象之间的一种一对多依赖关系,当某一对象的状态发生变化时,所有依赖于该对象的其他对象均会接收到通知,并随之完成自动更新。

在诸多常见的应用程序框架中,观察者模式被广泛应用,例如 MFC 中的 Doc/View 架构、Qt 框架中的信号与槽机制以及 Model/View 架构,还有安卓平台中的广播接收者(Broadcast Receiver)等。

在需要对某个对象的变更同时触发其他对象的变更,但无法明确具体涉及多少对象的情况下;或者当某个对象需要向其他对象发送通知,但又无法预先确定这些对象的具体身份,即不希望这些对象之间存在紧密耦合关系时;此类场景均可采用观察者模式进行处理。

下图展示了观察者模式的 UML 表示:

以下将展示一个观察者模式的具体应用案例。该案例涉及一种情境:某人对花卉开放感兴趣,期望在花朵绽放时能够及时接收到通知。

首先来看目标与观察者接口的定义:

复制代码
 class BloomObserver{

    
 public:
    
     BloomObserver();
    
     virtual ~Blo

全部评论 (0)

还没有任何评论哟~