您的位置:首页 > 其它

Mediator(中介者)-对象行为型模式

2016-07-24 15:46 316 查看
1.意图

用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

2.动机

通过将集体行为封装在一个单独的中介者对象中,中介者负责控制和协调一组对象间的交互。中介者充当一个中介以使组中的对象不再相互显示引用。这些对象只知道中介者,从而减少了相互连接的数目。

3.适用性

一组对象定义良好,但是以复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解。

一个对象引用其它很多对象并且直接与这些对象通信,导致难以复用该对象。

想定制一个分布在多个类中的行为,而又不想生成太多的子类。

4.结构



5.效果

减少了子类的生成,Mediator将原本分布于多个对象间的行为集中在一起。改变这些行为只需生成Mediator的子类即可。这样各个Colleague类可被重用。

将个Colleague解耦, Mediator有利于各Colleague间的松耦合,可以独立的改变和重用各Mediator类和Colleague类。

简化了对象协议,用Mediator和各Colleague间的一对多的交互来替代多对多的交互。一对多的关系更易于理解,维护和扩展。

它对对对象如何协作进行了抽象,将中接者作为一个独立的概念并将其封装在一个对象中,使你将注意力从对象各自本身的行为转移到它们之间的交互上来。这有助于弄清楚一个系统中的对象是如何交互的。

它使控制集中化,中介者模式将交互的复杂性变为中介者的复杂性。因为中介者封装了协议,它可能比任何一个Colleague都复杂。这可能使中介者自身成为一个难于维护的庞然大物。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: