Mediator Pattern
ref: 中介者模式 | 菜鸟教程
当众多对象之间成为网状模式时,使用一个“中介”来规范所有对象的共同行为,使得对象之间可以解耦的设计模式。
- User 表示用户,提供 sendMessage() 方法
- ChatRoom 提供 showMessge() 让 User 调用以显示消息
import java.util.Date;
public class ChatRoom {
public static void showMessage(User user, String message){
System.out.println(new Date().toString()
+ " [" + user.getName() +"] : " + message);
}
}
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public User(String name){
this.name = name;
}
public void sendMessage(String message){
ChatRoom.showMessage(this,message);
}
}
public class MediatorPatternDemo {
public static void main(String[] args) {
User robert = new User("Robert");
User john = new User("John");
robert.sendMessage("Hi! John!");
john.sendMessage("Hello! Robert!");
}
}
中介者模式的实现较为直观,理解为在形成为网状的对象 A 中,提取共同的方法作为新对象 B 中的方法。