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");
    
        }
    
    }

    测试结果:

  • 相关阅读:
    Mybatis动态SQL
    自己动手写一个持久层框架
    最长公共子串算法(Longest Common Substring)
    【SpringCloud】08.客户端负载均衡器:Ribbon
    ESP32 (idf-esp-v4.1)重新生成nvs分区
    IDEA导入新的springboot项目出错
    springboot集成mybatis出现问题/连接数据库出错
    Java学习周记2
    2020.8.6_Java学习日记
    9.23笔试总结
  • 原文地址:https://www.cnblogs.com/13jhzeng/p/5585751.html
Copyright © 2011-2022 走看看