Java设计模式之中介者模式详解

简介: Java设计模式之中介者模式详解

中介者模式的背景

中介者模式是一种行为型设计模式,旨在降低对象之间的直接耦合关系,通过引入一个中介者对象,实现系统中对象的松耦合交互。中介者负责协调对象之间的通信,使得对象之间不再直接相互引用,而是通过中介者进行沟通。

中介者模式的关键要素

  • Mediator(中介者): 定义了对象之间交互的接口,负责协调对象的行为。
  • ConcreteMediator(具体中介者): 实现了Mediator接口,负责具体对象之间的协调逻辑。
  • Colleague(同事): 定义了对象的行为接口,与其他同事对象共享中介者。
  • ConcreteColleague(具体同事): 实现了Colleague接口,负责自身的行为,并与其他同事对象协同工作。

如何实现中介者模式

中介者模式的基本结构

// 中介者接口
public interface Mediator {
    void notifyColleague(Colleague sender, String message);
}
// 具体中介者
public class ConcreteMediator implements Mediator {
    private Colleague colleague1;
    private Colleague colleague2;
    public void setColleague1(Colleague colleague1) {
        this.colleague1 = colleague1;
    }
    public void setColleague2(Colleague colleague2) {
        this.colleague2 = colleague2;
    }
    @Override
    public void notifyColleague(Colleague sender, String message) {
        if (sender == colleague1) {
            colleague2.receive(message);
        } else {
            colleague1.receive(message);
        }
    }
}
// 同事接口
public interface Colleague {
    void setMediator(Mediator mediator);
    void send(String message);
    void receive(String message);
}
// 具体同事
public class ConcreteColleague implements Colleague {
    private Mediator mediator;
    @Override
    public void setMediator(Mediator mediator) {
        this.mediator = mediator;
    }
    @Override
    public void send(String message) {
        mediator.notifyColleague(this, message);
    }
    @Override
    public void receive(String message) {
        System.out.println("Colleague received message: " + message);
    }
}

中介者模式的实际应用场景

构建多人协作平台

中介者模式在多人协作平台的设计中有着广泛的应用。通过中介者,各个用户(同事对象)可以在平台上进行消息的发送与接收,实现用户之间的沟通和协作。

// 创建具体中介者对象
ConcreteMediator mediator = new ConcreteMediator();
// 创建具体同事对象
ConcreteColleague colleague1 = new ConcreteColleague();
ConcreteColleague colleague2 = new ConcreteColleague();
// 设置同事对象的中介者
colleague1.setMediator(mediator);
colleague2.setMediator(mediator);
// 设置中介者的同事对象
mediator.setColleague1(colleague1);
mediator.setColleague2(colleague2);
// 用户之间发送消息
colleague1.send("Hello, colleague2!");
colleague2.send("Hi, colleague1!");

结语

中介者模式通过引入中介者对象,有效降低了对象之间的直接耦合关系,提升了系统的可维护性和扩展性。在设计多人协作平台等场景中,中介者模式的优雅实现使得系统更加灵活、可协同的同时,也增加了程序员的设计乐趣。让我们在代码的世界里,共同探寻中介者模式的奥妙,打破对象间的独舞,共创协调的舞台吧!

相关文章
|
3天前
|
设计模式 算法 搜索推荐
Java设计模式之策略模式详解
Java设计模式之策略模式详解
|
3天前
|
设计模式 Java 机器人
Java设计模式之访问者模式详解
Java设计模式之访问者模式详解
|
3天前
|
设计模式 Java 机器人
Java设计模式之状态模式详解
Java设计模式之状态模式详解
|
2天前
|
设计模式 缓存 安全
Java设计模式的单例模式应用场景
Java设计模式的单例模式应用场景
17 4
|
2天前
|
设计模式 缓存 Java
Java设计模式:享元模式实现高效对象共享与内存优化(十一)
Java设计模式:享元模式实现高效对象共享与内存优化(十一)
|
2天前
|
设计模式 监控 安全
设计模式之代理模式(Java)
设计模式之代理模式(Java)
|
2天前
|
设计模式 Java 中间件
深入探索Java设计模式:责任链模式解析与实践
深入探索Java设计模式:责任链模式解析与实践
5 0
|
2天前
|
设计模式 Java 开发者
Java中的设计模式深度解析
Java中的设计模式深度解析
|
2天前
|
设计模式 Java 数据库
Java设计模式:桥接模式实现灵活组合,超越单一继承的设计之道(十)
Java设计模式:桥接模式实现灵活组合,超越单一继承的设计之道(十)
|
2天前
|
设计模式 Java
Java设计模式:外观模式之优雅门面(九)
Java设计模式:外观模式之优雅门面(九)