用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

    1. public abstract class Mediator { //定义同事类
    2. protected ConcreteColleague1 c1;
    3. protected ConcreteColleague2 c2;
    4. //通过getter/setter方法把同事类注入进来
    5. public ConcreteColleague1 getC1() {
    6. return c1;
    7. }
    8. public void setC1(ConcreteColleague1 c1) {
    9. this.c1 = c1;
    10. }
    11. public ConcreteColleague2 getC2() {
    12. return c2;
    13. }
    14. public void setC2(ConcreteColleague2 c2) {
    15. this.c2 = c2;
    16. }
    17. //中介者模式的业务逻辑
    18. public abstract void doSomething1();
    19. public abstract void doSomething2();
    20. }

    使用场景: 中介者模式适用于多个对象之间紧密耦合的情况,
    紧密耦合的标准是:在类图中出现了蜘蛛网状结构,即每个类都与其他的类有直接的联系。