中介者模式(Mediator Pattern)
定义
又称为调解者模式,或调停者模式。
中介者模式定义了一个中介对象来封装一系列对象之间的交互,使得这些对象不需要直接相互通信,而是通过与中介者进行通信。
通过中介者解耦系统各层次对象的直接耦合,层次对象的对外依赖通信统统交由中介者转发。
属于行为型模式。
特点:
- 解耦关联对象:通过引入中介者来减少各个相关对象之间的直接依赖关系。
- 集中控制逻辑:将复杂的交互逻辑集中在一个中介者类中管理和处理。
- 促进可扩展性:新添加或修改现有相关对象时,只需修改或扩展中介者类而无需改变其他部分。
- 降低耦合性:各个对象只需要知道中介者对象,而无需了解其他对象的具体细节。
适用场景:
- 系统中对象之间存在复杂的引用关系,产生的相互依赖关系结构混乱且难以理解。
- 交互的公共行为,如果需要改变行为则可以增加新的中介者类。
标准示例
- 抽象中介者(Mediator):定义中介者的接口,用于封装对象之间的交互行为。它持有其他具体同事类的引用。
/**
* 抽象中介者
*/
public abstract class Mediator {
protected ConcreteColleagueA colleagueA;
protected ConcreteColleagueB colleagueB;
public void setColleagueA(ConcreteColleagueA colleagueA){
this.colleagueA = colleagueA;
}
public void setColleagueB(ConcreteColleagueB colleagueB){
this.colleagueB = colleagueB;
}
//中介者业务方法
public abstract void transferA();
public abstract void transferB();
}
<