首页 > 技术文章 > 中介者模式(Mediator)

naturelight 2016-05-27 10:45 原文

一:适用情况

  场景中存在多个角色并且其中多个角色互相存在直接关联,从而导致过多的强耦合和过复杂的关系网络。此时添加一个中介者角色,其他都角色只会和中介者发生直接关联,每个角色都通过中介者间接与其他角色进行沟通,从而化解了之前的强耦合

  这里的中介者如同我们办公室里的交换机、路由器, 我们用的电脑就是各个角色,彼此没有发生直接联系而是通过交换机和路由器来间接交互。

  

 

  如果没有中介者的话,可能的情况是这样:

 

二:定义

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

  总的得来说,添加一个中介者将交互揽在身上。

 

三:涉及的主要角色

  1.抽象中介者角色。

  2.具体中介者角色。

  3.同事角色。

 

四:优缺点

  1.优点很明显,减少类之间的依赖,把原来的一对多的依赖转为一对一的依赖, 也降低了类之间的耦合。

  2.缺点也很明显, 可以预见得到中介类会变的很臃肿。

推荐阅读