当有多个对象相互依赖时,加入中介者,可以大大减少类间的耦合性。
定义
用一个中介对象封装一系列的对象交互,中介者使各对象不需要显式地相互作用,从而使耦合松散,而且可以独立地改变他们的行为
类图如下;

这个类图主要有两种角色:中介者及其同事。中介者负责协调同事的协作,必须依赖同事角色。每一个同事与其他同事通信时,必须通过中介者。同事角色的行为分为两类:本身完成的称为自发行为;需要依赖其他同事的称为依赖行为。
对于两种角色,中介者一般只有一个,同事可以有多个,他们一般呈星形结构。
优点
减少了类间的依赖,把原本一对多的依赖转成了一对一的依赖。
缺点
中介者容易膨胀,同事类越多,中介者逻辑越复杂。
使用场景
中介者模式容易被误用,用不好则会导致中介者类迅速膨胀。一般有这样一个适用标准:当类图出现蛛网结构时,建议考虑中介者模式。
注意事项
参考
设计模式之禅