观察者模式
定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆可得到通知并被自动更新。
观察者模式又叫做发布-订阅(Publish-Subscribe)模式、模型-视图(Model-View)模式、源-监听器(Source-Listener)模式。
观察者模式实例之猫、狗与老鼠
从类图可知, MySubject需要保存(关联)MyObserver的对象,当MySubject发出通知时cry(),将会遍历ArrayList中的MyObserver的response函数,来实现MyObserver观察者(被动)更新的效果。
下面是c++实现的版本
抽象观察者MyObserver
//抽象观察者MyObserver
class MyObserver{
public:
virtual void response();
};
抽象目标类MySubject
//抽象目标类MySubject
class MySubject{
public:
//注册
void attach(MyObserver *observer){
observers.push_back(observer);
}
//注销
void detach(MyObserver *observer){
f