设计模式C++描述----18.中介者(Mediator)模式(二)

2014-11-24 12:01:35 · 作者: · 浏览: 1
e(message); //中国收到信息
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