题目
介绍下中介者模式
答案
中介者模式(Mediator Pattern)用一个中介对象封装一系列对象之间的交互,使各对象不需要显式地引用彼此,解耦系统中的对象关系。 适用场景: - 多个对象之间存在复杂的通信关系。 - 希望将交互集中管理,简化对象间依赖。 Java 示例:聊天房间中介 ```java // 抽象中介者 interface ChatMediator { void sendMessage(String message, User user); } // 具体中介者 class ChatRoom implements ChatMediator { private List<User> users = new ArrayList<>(); public void addUser(User user) { users.add(user); } public void sendMessage(String message, User user) { for (User u : users) { if (u != user) { u.receive(message); } } } } // 抽象同事类 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); } // 具体同事类 class ChatUser extends User { public ChatUser(ChatMediator mediator, String name) { super(mediator, name); } public void send(String message) { System.out.println(name + " sends: " + message); mediator.sendMessage(message, this); } public void receive(String message) { System.out.println(name + " receives: " + message); } } // 测试 public class MediatorTest { public static void main(String[] args) { ChatRoom chatRoom = new ChatRoom(); User alice = new ChatUser(chatRoom, "Alice"); User bob = new ChatUser(chatRoom, "Bob"); chatRoom.addUser(alice); chatRoom.addUser(bob); alice.send("Hi Bob!"); bob.send("Hello Alice!"); } } ```