一:适用情况
场景中存在多个角色并且其中多个角色互相存在直接关联,从而导致过多的强耦合和过复杂的关系网络。此时添加一个中介者角色,其他都角色只会和中介者发生直接关联,每个角色都通过中介者间接与其他角色进行沟通,从而化解了之前的强耦合。
这里的中介者如同我们办公室里的交换机、路由器, 我们用的电脑就是各个角色,彼此没有发生直接联系而是通过交换机和路由器来间接交互。
如果没有中介者的话,可能的情况是这样:
二:定义
用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。
总的得来说,添加一个中介者将交互揽在身上。
三:涉及的主要角色
1.抽象中介者角色。
2.具体中介者角色。
3.同事角色。
四:优缺点
1.优点很明显,减少类之间的依赖,把原来的一对多的依赖转为一对一的依赖, 也降低了类之间的耦合。
2.缺点也很明显, 可以预见得到中介类会变的很臃肿。