日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

3_10 MediaMode 中介者模式

發布時間:2024/4/11 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3_10 MediaMode 中介者模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
// 定義:用一個中介對象來封裝一系列的對象交互 // // 模式舉例:各個國家通過聯合國進行交互 // // 模式特點:典型的減小類之間的耦合度 // //#include<iostream> using namespace std;class Colleague;class Mediator { public:virtual void send(string msg, Colleague * c)=0; };class Colleague { public:Colleague(Mediator * m):m_mediator(m){}//此處是不是寫上接收者?virtual void send(string msg)=0;virtual void notify(string msg, Colleague * c)=0;protected:Mediator * m_mediator; };class ConcreteColleagueA : public Colleague { public:ConcreteColleagueA(Mediator * m):Colleague(m){}virtual void send(string msg){m_mediator->send(msg, this);}virtual void notify(string msg, Colleague * c){cout <<"ConcreteColleagueA 收到消息:"<<msg<<endl;} };class ConcreteColleagueB : public Colleague { public:ConcreteColleagueB(Mediator * m):Colleague(m){}virtual void send(string msg){m_mediator->send(msg, this);}virtual void notify(string msg, Colleague * c){cout <<"ConcreteColleagueB 收到消息:"<<msg<<endl;} };class ConcreteMediator : public Mediator { public:void setColleague(Colleague *c1, Colleague *c2){m_colleagueA = c1;m_colleagueB = c2;}virtual void send(string msg, Colleague * c){if(c == m_colleagueA){m_colleagueB->notify(msg,c);}else if(c == m_colleagueB){m_colleagueA->notify(msg,c);}}private:Colleague * m_colleagueA;Colleague * m_colleagueB; };int main() {ConcreteMediator * pConcreteMediator = new ConcreteMediator();Colleague * pColleagueA = new ConcreteColleagueA(pConcreteMediator);Colleague * pColleagueB = new ConcreteColleagueB(pConcreteMediator);pConcreteMediator->setColleague(pColleagueA,pColleagueB);pColleagueA->send("你好");return 0; }

?

總結

以上是生活随笔為你收集整理的3_10 MediaMode 中介者模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。