上一篇
在软件开发中,当多个对象之间存在复杂的交互关系时,代码往往会变得难以维护和扩展。为了解决这个问题,中介者模式(Mediator Pattern)应运而生。本教程将带你从零开始理解并实现Java中介者模式,即使是编程小白也能轻松上手!
中介者模式是一种行为型设计模式,它通过引入一个中介者对象来封装一系列对象之间的交互。这样,对象之间不再直接通信,而是通过中介者进行间接通信,从而降低系统组件之间的耦合度。

我们以一个简单的聊天室系统为例。在这个系统中,用户(User)不直接向其他用户发送消息,而是通过聊天室(ChatRoom)这个中介者来转发消息。
public interface ChatMediator { void sendMessage(String message, User user);}import java.util.ArrayList;import java.util.List;public class ChatRoom implements ChatMediator { private List<User> users; public ChatRoom() { this.users = new ArrayList<>(); } public void addUser(User user) { this.users.add(user); } @Override public void sendMessage(String message, User sender) { for (User user : users) { // 不向发送者自己发送消息 if (user != sender) { user.receive(message); } } }}public abstract class User { protected ChatMediator mediator; protected String name; public User(ChatMediator mediator, String name) { this.mediator = mediator; this.name = name; } public abstract void send(String message); public abstract void receive(String message);}public class ConcreteUser extends User { public ConcreteUser(ChatMediator mediator, String name) { super(mediator, name); } @Override public void send(String message) { System.out.println(name + " 发送消息: " + message); mediator.sendMessage(message, this); } @Override public void receive(String message) { System.out.println(name + " 收到消息: " + message); }}public class MediatorPatternDemo { public static void main(String[] args) { ChatMediator chatRoom = new ChatRoom(); User alice = new ConcreteUser(chatRoom, "Alice"); User bob = new ConcreteUser(chatRoom, "Bob"); User charlie = new ConcreteUser(chatRoom, "Charlie"); ((ChatRoom) chatRoom).addUser(alice); ((ChatRoom) chatRoom).addUser(bob); ((ChatRoom) chatRoom).addUser(charlie); alice.send("大家好!"); System.out.println(); bob.send("你好,Alice!"); }}运行结果:
Alice 发送消息: 大家好!Bob 收到消息: 大家好!Charlie 收到消息: 大家好!Bob 发送消息: 你好,Alice!Alice 收到消息: 你好,Alice!Charlie 收到消息: 你好,Alice!通过本教程,你已经掌握了Java中介者模式的基本概念、实现方式及其应用场景。中介者设计模式是解决复杂对象交互问题的有效手段,特别适用于需要解耦多个组件的系统。
记住,合理使用Mediator Pattern Java可以让你的代码更加模块化、易于维护。希望这篇设计模式教程对你有所帮助!如果你有任何疑问,欢迎在评论区留言交流。
本文由主机测评网于2025-12-09发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025125056.html