Add all 23 GoF design pattern implementations (2026-06-13)
This commit is contained in:
27
03-behavioral/mediator/ChatRoom.java
Normal file
27
03-behavioral/mediator/ChatRoom.java
Normal file
@@ -0,0 +1,27 @@
|
||||
package mediator;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Concrete Mediator — the chat room that routes messages between users.
|
||||
* Users talk to ChatRoom; ChatRoom talks to users. Nobody else talks to anybody.
|
||||
*/
|
||||
public class ChatRoom implements ChatMediator {
|
||||
private final List<User> users = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void addUser(User user) {
|
||||
users.add(user);
|
||||
System.out.println(" [ChatRoom] " + user.getName() + " joined the room");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(String message, User sender) {
|
||||
for (User user : users) {
|
||||
if (user != sender) { // don't echo back to sender
|
||||
user.receive(message, sender.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user