#ifndef __OBSERVER_MODEL__#define __OBSERVER_MODEL__#include#include #include using namespace std;/*GOOD:定义了一种一对多的关系,让多个观察对象(公司员工)同时监听一个主题对象(秘书), 主题对象状态发生变化时,会通知所有的观察者,使它们能够更新自己。*/class Secretary;//看股票的同事类(观察对象,观察者)class StockObserver{private: string name; Secretary* sub;public: StockObserver(string strName, Secretary* strSub) { name = strName; sub = strSub; } void update();};//秘书类(主题对象,通知者)class Secretary{private: vector observers;public: string action; void add(StockObserver ob){ observers.push_back(ob); } void notify() { vector ::iterator iter = observers.begin(); while( iter != observers.end() ) { (*iter).update(); ++iter; } }};void StockObserver::update(){ cout< <<":"< action<<",不要玩股票了,要开始工作了!"< add(*s1); p->add(*s2); //事件 p->action="老板来了"; //通知 p->notify(); return 0;}*/