设计模式之观察者模式
来源:互联网 发布:阿里云有在线客服吗 编辑:程序博客网 时间:2024/05/21 11:27
观察者模式定义了一对多的依赖关系,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新,松耦合。本质上是一种发布订阅的模型。
代码如下
#include <list>#include <iostream>using namespace std;class IObserver{public: virtual void update(string) = 0;};class ISubject{public: virtual void addObserver(IObserver*) = 0; virtual void removeObserver(IObserver*) = 0; virtual void notify(string) = 0;};class Subject :public ISubject{public: void addObserver(IObserver* observer) { m_observers.push_back(observer); } void removeObserver(IObserver* observer) { m_observers.remove(observer); } void notify(string message) { list<IObserver*>::iterator iter = m_observers.begin(); for (; iter != m_observers.end(); iter++) { (*iter)->update(message); } }private: list<IObserver*> m_observers; string m_message;};class Observer :public IObserver{public: Observer(int index, ISubject *sub):m_index(index),m_sub(sub) { m_sub->addObserver(this); } void update(string message) { cout << "I am Observer "<<m_index<<". "<< message.c_str()<<endl; }private: int m_index; ISubject *m_sub;};int main(){ ISubject* sub = new Subject(); IObserver* ob1 = new Observer(1, sub); IObserver* ob2 = new Observer(2, sub); string message = "OK!"; sub->notify(message); getchar();}
0 0
- 设计模式之-观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- jquery用法--jquery盒子模型
- Zookeeper 入门
- apache-hive-1.2.1和hbase-1.2.2的整合(伪分布式)
- storm和spring的结合
- Babel 入门教程
- 设计模式之观察者模式
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 第一个Qt应用的实现-总结移植之后的步骤
- poj1579
- 用户登陆界面使用Session保存并导入用户名
- scala 定义Queue 对象时提示没有权限
- 算法训练 递归求二项式系数值
- PHP
- 理一下docker在各平台上的运行机制