场景简介

公司有多个大领导,还有一位技术达人小孙;由于小孙干活又快又好;所以这些领导都喜欢找他干活;每个领导的需求千奇百怪,又互相有交叉牵制,这个领导想这么做,那个领导想那样做;长此以往,导致小孙的效率降低,也变得苦不堪言。为此小孙想了一个好办法,由他牵头把这些领导的需求梳理清楚,整合;达成统一的解决方案。

image-1669086309178

核心:把网状图变成星状图。

中介者(调停者)模式:⽤⼀个中介对象封装⼀系列的对象交互,中介者使各对象不需要 显示地相互作⽤,从⽽使其耦合松散,⽽且可以独⽴地改变它们之间的交互。

代码示例

public abstract class Mediator {

    private Leader leader1;
    private Leader leader2;

    public void setLeader1(Leader leader1) {
        this.leader1 = leader1;
    }

    public void setLeader2(Leader leader2) {
        this.leader2 = leader2;
    }

    //业务逻辑后续实现1
    abstract void doSomething1();

    //业务逻辑后续实现2
    abstract void doSomething2();
}

使⽤场景

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

使用中介者把网状关系转换为星状关系。