`

设计模式学习篇-mediator中介者模式

 
阅读更多

中介者模式 :用一个中介对象来封装一系列的对象交互,中介者使得对象不需要显示的引用,从而使其松耦合,而且可以独立的改变他们的交互。

中介者模式本质:封装交互 。

 

如果一组对象之间的通信方式比较复杂,导致相互依赖,结构混乱;如果一个对象引用了很多对象,并直接与这些对象进行交互,导致难以复用该对象。 可以采用中介者模式。

 

与外观模式相似:外观模式多用于封装一个子系统内部的多个模块,目的是向子系统外部提供简单的API。它封装的是子系统内部与外部系统间交互。而中介者模式提供的是多个平等的同事对象之间交互关系的封装。

 

举例:在一个公司里面,有很多部门、员工(我们统称他们互相为Colleague“同事),为了完成一定的任务,“同事”之间肯定有许多需要互相配合、交流的过程。如果由各个“同事”频繁地到处去与自己有关的“同事”沟通,这样肯定会形成一个多对多的杂乱的联系网络而造成工作效率低下。
 
此时就需要一位专门的“中介者”给各个“同事”分配任务,以及统一跟进大家的进度并在“同事”之间实时地进行交互,保证“同事”之间必须的沟通交流。很明显我们知道此时的“中介者”担任了沟通“同事”彼此之间的重要角色了,“中介者”使得每个“同事”都变成一对一的联系方式,减轻了每个“同事”的负担,增强工作效率。
 
大概理清上面简单例子中的意图之后,给出中介者模式适用场景:
1、一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解。
2、一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象。
3、想定制一个分布在多个类中的行为,而又不想生成太多的子类
类图附件:

 

  • 大小: 2.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics