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

  • 相关阅读:
    jQuery实现图片延迟加载
    小猪学设计模式之—装饰者模式
    设计原则—依赖倒转原则
    ASP.NET MVC 在子页中引用头文件
    关于博客
    关于借钱
    面向对象编程(OOP)基础之UML基础
    C#抽象类、抽象方法、抽象属性
    小猪学设计模式——门面模式(外观模式)
    Eclipse 快捷键
  • 原文地址:https://www.cnblogs.com/the-fool/p/11054143.html
Copyright © 2011-2022 走看看