设计模式——行为型模式_中介者模式

1. 类图

中介者模式的 UML 图

2. 角色

  • User:用户
  • ChatRoom:中介者,负责向所有User显示消息

3. 代码

  • 中介类
    • public class ChatRoom {
         public static void showMessage(User user, String message){
            System.out.println(new Date().toString()
               + " [" + user.getName() +"] : " + message);
         }
      }
  • User
    • 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!");    //Thu Jan 31 16:05:46 IST 2013 [Robert] : Hi! John!
            john.sendMessage("Hello! Robert!");    //Thu Jan 31 16:05:46 IST 2013 [John] : Hello! Robert!
         }
      }

4. 总结

优点:

  • 降低了类的复杂度,将一对多转化成了一对一

缺点:

  • 中介者会庞大,变得复杂难以维护

猜你喜欢

转载自blog.csdn.net/qq_41157876/article/details/111884375