设计模式 | 中介者模式

75 阅读1分钟

定义

通过包装一系列对象相互作用的方式,使得这些对象不必相互明显作用,将多对多的相互作用转化为一对多的相互作用。

使用场景

对象之间的交互操作很多且每个对象的行为操作都依赖彼此。

Java 代码示例

public abstract class Colleague {
    protected Mediator mMediator;

    public Colleague(Mediator mediator) {
        mMediator = mediator;
    }

    public abstract void action();
}

public abstract class Mediator {
    protected ColleagueA mColleagueA;
    protected ColleagueB mColleagueB;

    public void setColleagueA(ColleagueA colleagueA) {
        mColleagueA = colleagueA;
    }

    public void setColleagueB(ColleagueB colleagueB) {
        mColleagueB = colleagueB;
    }
    
    public abstract void method();
}

public class ColleagueA extends Colleague {
    public ColleagueA(Mediator mediator) {
        super(mediator);
    }

    @Override
    public void action() {

    }
}

public class ColleagueB extends Colleague {
    public ColleagueB(Mediator mediator) {
        super(mediator);
    }

    @Override
    public void action() {

    }
}

public class ConcreteMediator extends Mediator {
    @Override
    public void method() {
        mColleagueA.action();
        mColleagueB.action();
    }
}