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 中的方法。