Mediator
Example - Chat
class Group {
private List<User> users = new ArrayList<>();
public void add(User user) {
users.add(user);
}
public void say(String message, User author) {
users.stream()
.filter(user -> user != author)
.forEach(user -> System.out.println(user.getName() + ": " + message));
}
}
class User {
private Group group;
private String name;
public User(Group group, String name) {
this.group = group;
this.name = name;
}
public Group getGroup() {
return group;
}
public String getName() {
return name;
}
public void say(String message) {
group.say(message, this);
}
}Last updated