Bootstrap

JAVA:中介者模式(Mediator Pattern)的技术指南

1、简述

中介者模式是一种行为型设计模式,用于降低多个对象之间的复杂交互关系。通过引入一个中介者对象,各个对象不再直接相互引用,而是通过中介者进行通信,从而实现松耦合。

本文将介绍中介者模式的基本概念、结构、优缺点,并提供一个实际的应用案例。

在这里插入图片描述

设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git


2、什么是中介者模式?

中介者模式通过定义一个中介者对象,封装对象之间的交互,使各对象之间不直接交互,而是通过中介者来协调。这样可以减少对象之间的耦合,便于系统的维护和扩展。

使用场景:

  • 聊天室应用:用户之间的消息传递通过服务器中介。
  • GUI组件交互:界面组件之间的通信通过一个中介者类。
  • 复杂系统中的模块交互:多个模块需要协调工作。

中介者模式包含以下角色:

  • 中介者接口(Mediator):定义具体中介者需要实现的接口。
  • 具体中介者(ConcreteMediator):实现中介者接口,协调各对象的交互。
  • 同事类(Colleague):定义交互对象的基类,每个同事类只关注自身逻辑,通过中介者与其他同事类通信。

类图:

Colleague <--> Mediator <--> ConcreteMediator <--> OtherColleagues

3、实际案例

假设我们有一个聊天室应用,用户可以发送消息给其他用户,消息的传递通过聊天室中介者完成。

// 中介者接口
public interface ChatMediator {
   
    void sendMessage(String message, User user);
    void addUser(User user);
}

// 具体中介者
public class ChatRoom implements ChatMediator {
   
    private List<User> users = new 
;