第七个设计模式:观察者模式(Observer);
发布时间
阅读量:
阅读量
观察者模式(亦称发布/订阅模式)确立了对象之间的一种一对多依赖关系,当某一对象的状态发生变化时,所有依赖于该对象的其他对象均会接收到通知,并随之完成自动更新。
在诸多常见的应用程序框架中,观察者模式被广泛应用,例如 MFC 中的 Doc/View 架构、Qt 框架中的信号与槽机制以及 Model/View 架构,还有安卓平台中的广播接收者(Broadcast Receiver)等。
在需要对某个对象的变更同时触发其他对象的变更,但无法明确具体涉及多少对象的情况下;或者当某个对象需要向其他对象发送通知,但又无法预先确定这些对象的具体身份,即不希望这些对象之间存在紧密耦合关系时;此类场景均可采用观察者模式进行处理。
下图展示了观察者模式的 UML 表示:

以下将展示一个观察者模式的具体应用案例。该案例涉及一种情境:某人对花卉开放感兴趣,期望在花朵绽放时能够及时接收到通知。
首先来看目标与观察者接口的定义:
class BloomObserver{
public:
BloomObserver();
virtual ~Blo
全部评论 (0)
还没有任何评论哟~
