用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
public abstract class Mediator { //定义同事类protected ConcreteColleague1 c1;protected ConcreteColleague2 c2;//通过getter/setter方法把同事类注入进来public ConcreteColleague1 getC1() {return c1;}public void setC1(ConcreteColleague1 c1) {this.c1 = c1;}public ConcreteColleague2 getC2() {return c2;}public void setC2(ConcreteColleague2 c2) {this.c2 = c2;}//中介者模式的业务逻辑public abstract void doSomething1();public abstract void doSomething2();}
使用场景: 中介者模式适用于多个对象之间紧密耦合的情况,
紧密耦合的标准是:在类图中出现了蜘蛛网状结构,即每个类都与其他的类有直接的联系。
