一、观察者模式
观察目标的变化导致一系列观察者的变化,用于建立对象和对象之间的依赖关系,一个对象(观察目标)发生改变时将自动通知其他对象(观察者),其他对象作出相应的反应。
二、例子
观察目标应当有一份观察者的对象,这样才能保证通知到观察者,当发生变化时,调用 update 方法更新观察者的状态。
观察目标还应同时可以增加观察者或删除观察者。
#include <iostream>
#include <list>
using namespace std;
// 抽象观察者
class AbstractObserver {
public:
virtual void update() = 0;
};
// 观察者1
class Observer1 : public AbstractObserver {
public:
Observer1() {
cout << "observer1 : status1...\n";
}
virtual void update() {
cout << "observer1 change status1...\n"