中介者模式(Mediator Pattern):封装交互,解耦对象
中介者模式是行为型设计模式的一种,核心思想是通过一个中介对象封装多个对象(同事)之间的交互,使同事对象无需直接相互引用,从而降低耦合度,且可以独立地改变它们之间的交互方式。这种模式就像 “聊天室主持人”—— 多个用户(同事)通过主持人(中介者)传递信息,无需知道彼此的存在,所有交互由主持人协调,本质是 “集中管理交互,减少直接依赖”。
中介者模式的核心结构

中介者模式通过四个核心角色实现对象间的间接交互,职责分明且解耦效果显著:
中介者接口(Mediator)
- 定义同事对象之间交互的接口,声明用于协调同事的方法(如
changed(Colleague)—— 当同事状态改变时通知中介者)。 - 示例:
ChatMediator(聊天室中介者接口,声明sendMessage(String msg, User user)方法)。
具体中介者(ConcreteMediator)
- 实现中介者接口,维护所有同事对象的引用,并实现具体的协调逻辑:当某个同事状态改变时,中介者负责通知其他相关同事做出响应。
- 示例:
ConcreteChatMediator(具体聊天室中介者,管理用户列表并转发消息)。
同事类抽象(Colleague)
- 定义同事对象的抽象接口,持有中介者的引用(通过构造方法注入),提供与中介者交互的方法(如通知中介者自身状态改变)。
- 示例:
User(用户抽象类,包含send(String msg)和receive(String msg)方法)。
具体同事类(ConcreteColleague)
- 实现同事类抽象,代表具体的交互对象,当自身状态改变时,通过中介者通知其他同事,而不直接与其他同事交互。
- 示例:
ChatUser(具体用户,发送消息时通过中介者转发,接收中介者传递的消息)。
代码实现示例
以 “聊天室” 为例,展示中介者模式的实现:多个用户通过聊天室中介者发送和接收消息,用户之间无需直接关联,所有消息通过中介者转发。



