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

    测试结果:

  • 相关阅读:
    MAC上Vue的一些安装及配置
    MySQL
    git
    win7系统的用户怎么去掉用户账户控制?
    JS
    IDEA使用总结
    Mybatis
    codeforces cf educatonal round 57(div2) D. Easy Problem
    codeforces round#509(div2) E. Tree Reconstruction
    codeforces round#509(div2) D. Glider
  • 原文地址:https://www.cnblogs.com/13jhzeng/p/5585751.html
Copyright © 2011-2022 走看看