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