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

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

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!");

结语

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

相关文章
|
22天前
|
设计模式 Java 程序员
[Java]23种设计模式
本文介绍了设计模式的概念及其七大原则,强调了设计模式在提高代码重用性、可读性、可扩展性和可靠性方面的作用。文章还简要概述了23种设计模式,并提供了进一步学习的资源链接。
36 0
[Java]23种设计模式
|
6天前
|
设计模式 JavaScript Java
Java设计模式:建造者模式详解
建造者模式是一种创建型设计模式,通过将复杂对象的构建过程与表示分离,使得相同的构建过程可以创建不同的表示。本文详细介绍了建造者模式的原理、背景、应用场景及实际Demo,帮助读者更好地理解和应用这一模式。
|
1月前
|
设计模式 监控 算法
Java设计模式梳理:行为型模式(策略,观察者等)
本文详细介绍了Java设计模式中的行为型模式,包括策略模式、观察者模式、责任链模式、模板方法模式和状态模式。通过具体示例代码,深入浅出地讲解了每种模式的应用场景与实现方式。例如,策略模式通过定义一系列算法让客户端在运行时选择所需算法;观察者模式则让多个观察者对象同时监听某一个主题对象,实现松耦合的消息传递机制。此外,还探讨了这些模式与实际开发中的联系,帮助读者更好地理解和应用设计模式,提升代码质量。
Java设计模式梳理:行为型模式(策略,观察者等)
|
2月前
|
存储 设计模式 安全
Java设计模式-备忘录模式(23)
Java设计模式-备忘录模式(23)
|
2月前
|
设计模式 存储 算法
Java设计模式-命令模式(16)
Java设计模式-命令模式(16)
|
2月前
|
设计模式 存储 缓存
Java设计模式 - 解释器模式(24)
Java设计模式 - 解释器模式(24)
|
2月前
|
设计模式 安全 Java
Java设计模式-迭代器模式(21)
Java设计模式-迭代器模式(21)
|
2月前
|
设计模式 缓存 监控
Java设计模式-责任链模式(17)
Java设计模式-责任链模式(17)
|
2月前
|
设计模式 运维 算法
Java设计模式-策略模式(15)
Java设计模式-策略模式(15)
|
2月前
|
设计模式 算法 Java
Java设计模式-模板方法模式(14)
Java设计模式-模板方法模式(14)