🧭Mediator Pattern – Overview
🧠 Concept
🧱 Key Roles
Role
Description
💻 Java Example – Chat Room (Mediator)
// Mediator interface
interface ChatMediator {
void sendMessage(String message, User sender);
void addUser(User user);
}
// Concrete Mediator
class ChatRoom implements ChatMediator {
private List<User> users = new ArrayList<>();
public void addUser(User user) {
users.add(user);
}
public void sendMessage(String message, User sender) {
for (User user : users) {
if (user != sender) {
user.receive(message);
}
}
}
}
// Colleague
abstract class User {
protected ChatMediator mediator;
protected String name;
public User(ChatMediator mediator, String name) {
this.mediator = mediator;
this.name = name;
}
abstract void send(String message);
abstract void receive(String message);
}
// Concrete Colleague
class ChatUser extends User {
public ChatUser(ChatMediator mediator, String name) {
super(mediator, name);
}
void send(String message) {
System.out.println(name + " sends: " + message);
mediator.sendMessage(message, this);
}
void receive(String message) {
System.out.println(name + " receives: " + message);
}
}🧠 Flow Summary (Step-by-Step)
Step
Action
Mediator Role
Output
🪜 Summary
📡 Real-world Analogy
🧭 TL;DR
Last updated