观察者模式"/>
C++ 观察者模式
作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
观察者模式(Observer Pattern),定义了对象间的一对多的依赖关系,让多个观察者对象同时监听某一个主题对象(被观察者)。当主题对象的状态发生更改时,会通知所有观察者,让它们能够自动更新。
背景
很多时候,在应用程序的一部分发生更改时,需要同时更新应用程序的其他部分。有一种方法是:让接收者反复检查发送者来进行更新,但是这种方法存在两个主要问题:
- 占用大量的 CPU 时间来检查新的状态
- 依赖于检测更新的时间间隔,可能不会立即获得更新
对于这个问题,有一个简单的解决方案 - 观察者模式。
模式结构
UML 结构图:
- Subject(抽象主题):跟踪所有观察者,并提供添加和删除观察者的接口。
- Observer(抽象观察者):为所有的具体观察者定义一个接口,在得到主题的通知时进行自我更新。
- ConcreteSubject(具体主题):将有关状态存入各 ConcreteObserver 对象。
更多推荐
C++ 观察者模式
发布评论