观察者模式,又叫发布-订阅(Publish/Subscribe)模式:定义了一种一对多的依赖关系,让多个观察对象同时监听某个主题对象。这个主题对象在状态发生变化时,会通知多个观察者对象,使他们能自动更新自己。
观察者模式一般用在:当一个对象的改变同时需要改变其他对象,而且它不知道具体有多少对象待改变时。
例子:公司通过秘书通知部分员工开会,秘书状态改变,员工将收到通知。当然老板也可以通知开会,所以就抽象出观察者类和通知者类
UML:
class Notifier;
//抽象观察者
class Observer {
public:
Observer(string name, Notifier *notifer) :m_name(name), m_notifer(notifer) {}
virtual