定义
中介者模式
用一个中介对象来封装一系列的对象交互。中介者使对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
将一个对象里对其他对象地引用删去地好处是,提高这个对象地可重用性
角色
- 中介者(Mediator):中介者是一个接口,该接口定义了用于同事间进行通信的方法。
- 具体中介者(ConcreteMediator):具体中介者使实现中介者接口的类,需要包含所有具体同事的引用。
- 同事(Colleague):一个接口,规定了具体同事需要实现的方法。
- 具体同事(ConcreteColleague):实现同事接口的类。具体同事需要包含具体中介者的引用,一个具体同事需要和其他具体同事交互时,只需要将自己的请求通知给它所包含的具体中介者即可。
中介者模式的UML类图
装饰模式代码示例
详见Gitee仓库的mediatorpattern包
中介者模式的优点
- 可以避免许多的对象为了之间的通信而相互显示引用。
- 可以通过中介者将原本分布于多个对象间的交互行为集中在一起。
- 具体中介者使得哥哥具体同事完全解耦。