zoukankan      html  css  js  c++  java
  • 【设计模式】行为型10中介者模式(Mediator Pattern)

    中介者模式(Mediator Pattern)

        这里笔者完全参考了:http://www.runoob.com/design-pattern/mediator-pattern.html,案例精简清晰,直指核心-中介对象。多处直接转载,特此说明。

        定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

        主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,  同时做出相应的处理。

    uml:


    代码:

    1、中介者对象:

    package com.pat.mediator;
    /**
     * 中介者对象
     * 使用此对象封装对象的交互
     * @author ZX
     */
    public class ChatRoom {
    	public static void sendMsg(User user,String msg) {
    		System.out.println(user.getName()+":"+msg);
    	}
    
    }

    2、用户对象:

    package com.pat.mediator;
    /**
     * 中介所关联的对象
     * @author ZX
     */
    public class User {
    	//用户名称
    	private String name;
    
    	
    	//发送消息
    	public void sendMsg(String msg) {
    		ChatRoom.sendMsg(this, msg);
    	}
    	//getset
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    	//构造防范
    	public User() {
    	}
    	public User(String name) {
    		super();
    		this.name = name;
    	}
    	
    	
    }

    3、测试类:

    package com.pat.mediator;
    
    public class Test {
    	public static void main(String[] args) {
    		User tom = new User("tom");
    		User jack = new User("jack");
    		User rose = new User("rose");
    		
    		tom.sendMsg("rose!marry me!");
    		jack.sendMsg("marry me!");
    		rose.sendMsg("get out!");
    		
    	}
    }
    

  • 相关阅读:
    【RocketMQ之介绍】
    1. JVM体系结构概述
    技术贴
    http协议
    如何在2个小时之内掌握48个国际音标?
    托业全真高频词汇(一)
    三. 托业单词之业务拓展 Business Development
    二、托业单词之人事及管理 Personnel & Management
    一、托业单词之办公室事宜 Office matters
    VUE 之让数字四舍五入
  • 原文地址:https://www.cnblogs.com/the-fool/p/11054143.html
Copyright © 2011-2022 走看看