中介者模式一般应用于一组对象以定义良好但是复杂的方式进行通信的场合,以及想定制一个分布在多个类中的行为,而又不想生成太多子类的场合
#include <iostream> using namespace std; class Mediator { public: void execute(int type) { if(type==1){ cout << "do thing 1" << endl; }else if(type==2){ cout << "do thing 2" << endl; } } }; class Colleague { public: explicit Colleague(Mediator* mediator){ mMediator = mediator; } protected: Mediator* mMediator; }; class Colleague1:public Colleague { public: Colleague1(Mediator* mediator):Colleague(mediator){ } void operation1(){ mMediator->execute(1); } }; class Colleague2:public Colleague { public: Colleague2(Mediator* mediator):Colleague(mediator){ } void operation2(){ mMediator->execute(2); } }; int main() { Mediator* mediator = new Mediator; Colleague1* colleague1 = new Colleague1(mediator); Colleague2* colleague2 = new Colleague2(mediator); colleague1->operation1(); colleague2->operation2(); } do thing 1 do thing 2