//// Created by andrew on 2020年11月28日.//#include <iostream>#include <list>using namespace std;class Secretary;// 观察者class PlayerObserver{public:explicit PlayerObserver(Secretary *secretary){this->m_secretary = secretary;}// 没有操作任何私有变量,建议使用 static 类型函数void update(const string& action){cout << "action" << action << endl;cout << "boss is coming" << endl;}private:Secretary *m_secretary;};class Secretary{public:Secretary(){m_list.clear();}void Notify(string info){// 给所有的 观察者 发送情报for(auto it=m_list.begin();it!=m_list.end();it++){(*it)->update(info);}}void setPlayerObserver(PlayerObserver *o){m_list.push_back(o);}private:list<PlayerObserver *>m_list;};int main(int argc, char* argv[]){Secretary *secretary = nullptr;PlayerObserver *playerObserver1 = nullptr;PlayerObserver *playerObserver2 = nullptr;secretary = new Secretary;playerObserver1 = new PlayerObserver(secretary);playerObserver2 = new PlayerObserver(secretary);secretary->setPlayerObserver(playerObserver1);secretary->setPlayerObserver(playerObserver2);secretary->Notify("boss is coming");secretary->Notify("boss in gone");delete playerObserver1;delete playerObserver2;delete secretary;cout << "observer demo" << endl;return 0;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。