zoukankan      html  css  js  c++  java
  • 中介者模式(Mediator Pattern)

    中介者模式:集中相关对象之间复杂的沟通和控制方式。

    模式结构图:

    例子:

    在这里ChatRoom是一个中介者,有多个User会使用中介者,形成一个用户间的聊天室,如果以后添加一个管理员与用户沟通,就不需要修改User代码了(当然中介者的代码需要修改,因为要添加处理管理员与用户之间交互的功能),只要加一个管理员类Manager,与中介者ChatRoom沟通,User不需要知道别的用户,Manager也不需要知道用户的细节。

    public class ChatRoom {
        public static void showMessage(User u, String m) {
            System.out.println(u.getName() + ":" + m);
        }
    }
    
    public class User {
        private String name;
        
        public User(String name) {
            this.name = name;
        }
        
        public void setName(String name) {
            this.name = name;
        }
        
        public String getName() {
            return name;
        }
        
        public void sendMessage(String m) {
            ChatRoom.showMessage(this, m);
        }
    }public class User {
        private String name;
        
        public User(String name) {
            this.name = name;
        }
        
        public void setName(String name) {
            this.name = name;
        }
        
        public String getName() {
            return name;
        }
        
        public void sendMessage(String m) {
            ChatRoom.showMessage(this, m);
        }
    }
    
    public class Test {
    
        public static void main(String[] args) {
            User u1 = new User("A");
            User u2 = new User("B");
            u1.sendMessage("Hi");
            u2.sendMessage("Hello");
    
        }
    
    }

    测试结果:

  • 相关阅读:
    注解的作用
    962. Maximum Width Ramp
    594. Longest Harmonious Subsequence
    1042. Flower Planting With No Adjacent
    419. Battleships in a Board
    1041. Robot Bounded In Circle
    leetcode 395. Longest Substring with At Least K Repeating Characters(高质量题)
    leetcode 44. Wildcard Matching(模糊匹配)
    HEU预热赛
    780. Reaching Points
  • 原文地址:https://www.cnblogs.com/13jhzeng/p/5585751.html
Copyright © 2011-2022 走看看