else
m_Janpa->GetMessage(message);
}
};
//测试代码
int main()
{
Mediator *mediator = new UN();
Country *pJanpa = new Janpa(); //日本
Country *pChina = new China(); //中国
mediator->SetJanpa(Janpa);
mediator->SetChina(China);
pJanpa->SetMediator(mediator);
pChina->SetMediator(mediator);
pJanpa->SendMessage("钓鱼岛是我们的,哈哈哈...\n");
pChina->SendMessage("操,你他妈再乱放屁,小心我弄死你!\n");
delete pJanpa;
delete pChina;
delete mediator;
return 0;
}
二. 中介者模式
定义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

说明:
1. Mediator 模式中,每个Colleague 维护一个 Mediator,当要进行通信时,每个具体的 Colleague 直接向ConcreteMediator 发信息,至于信息发到哪里,则由 ConcreteMediator 来决定。
2. ConcreteColleagueA 和 ConcreteColleagueB 不必维护对各自的引用,甚至它们也不知道各个的存在。
3. 优点是,各个 Colleague 减少了耦合。
4. 缺点是,由于 Mediator 控制了集中化,于是就把 Colleague 之间的交互复杂性变为了中介者的复杂性,也就是中介者会变的比任何一个 Colleague 都复杂。
作者 lwbeyond