文档章节

java设计模式_中介者模式

王大叔爱编程
 王大叔爱编程
发布于 2014/09/24 14:55
字数 474
阅读 87
收藏 5

/**
 * @Title: Country.java
 * @Package com.wangbiao.design.mediator
 * @Description: TODO 
 * @author wangbiao   
 * @date 2014-9-24 下午12:02:02 
 * @version V1.0
 */
package com.wangbiao.design.mediator;

/**
 * @Title: Country.java
 * @Package com.wangbiao.design.mediator
 * @Description: TODO 
 * @author wangbiao   
 * @date 2014-9-24 下午12:02:02 
 * @version V1.0
 */
public abstract class Country {

    public UnitedNationsMediator mediator;
    
    public Country() {
        // TODO Auto-generated constructor stub
    }
    
    public Country(UnitedNationsMediator mediator) {
        this.mediator = mediator;
    }
    
    public abstract void declare(String message);
    public abstract void getMessage(String message);
    
}


class China extends Country{
    
    public China(UnitedNationsMediator mediator) {
        super(mediator);
    }
    
    @Override
    public void getMessage(String message) {
        System.out.println("中国收到消息 : "+message);
    }

    @Override
    public void declare(String message) {
        mediator.declare(message, this);
    }
    
}

class USA extends Country{
    
    public USA(UnitedNationsMediator mediator) {
        super(mediator);
    }

    @Override
    public void getMessage(String message) {
        System.out.println("美国收到消息 : "+message);
    }

    @Override
    public void declare(String message) {
        mediator.declare(message, this);
    }
    
}


package com.wangbiao.design.mediator;

/**
 * 
 * @Title: UnitedNationsMediator.java
 * @Package com.wangbiao.design.mediator
 * @Description: TODO 
 * @author wangbiao   
 * @date 2014-9-24 下午01:57:02 
 * @version V1.0
 */

public abstract class UnitedNationsMediator {

    public abstract void declare(String message,Country country);
    
}

class UnitedNationSecurityCouncil extends UnitedNationsMediator{
    
    private China china;
    private USA usa;
    
    public China getChina() {
        return china;
    }

    public void setChina(China china) {
        this.china = china;
    }

    public USA getUsa() {
        return usa;
    }

    public void setUsa(USA usa) {
        this.usa = usa;
    }

    @Override
    public void declare(String message, Country country) {
        
        if (country instanceof China) {
            usa.getMessage(message);
        }else {
            china.getMessage(message);
        }
        
    }

}


/**
 * @Title: Client.java
 * @Package com.wangbiao.design.mediator
 * @Description: TODO 
 * @author wangbiao   
 * @date 2014-9-24 下午01:56:55 
 * @version V1.0
 */
package com.wangbiao.design.mediator;

/**
 * @Title: Client.java
 * @Package com.wangbiao.design.mediator
 * @Description: TODO 
 * @author wangbiao   
 * @date 2014-9-24 下午01:56:55 
 * @version V1.0
 */
public class Client {

    /**
     * @param args
     */
    public static void main(String[] args) {
        
        UnitedNationSecurityCouncil mediator = new UnitedNationSecurityCouncil();
        
        China country1 = new China(mediator);
        USA country2 = new USA(mediator);
        
        mediator.setChina(country1);
        mediator.setUsa(country2);
        
        country2.declare("为什么你每年的军费这么多?");
        country1.declare("管你屁事");
    }

}


© 著作权归作者所有

王大叔爱编程

王大叔爱编程

粉丝 34
博文 111
码字总数 61053
作品 0
成都
程序员
私信 提问
设计模式 2014-12-19

book: 阎宏《JAVA与模式》 架构设计栏目 http://blog.csdn.net/enterprise/column.html 概要: http://bbs.csdn.net/forums/Embeddeddriver 23种设计模式分别是: 1.单例模式 2.工厂方法模式...

jayronwang
2014/12/19
0
0
java 23种设计模式 深入理解

以下是学习过程中查询的资料,别人总结的资料,比较容易理解(站在各位巨人的肩膀上,望博主勿究) 创建型 抽象工厂模式 http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html ...

wc_飞豆
2018/03/16
0
0
练就Java24章真经—你所不知道的工厂方法

前言 最近一直在Java方向奋斗《终于,我还是下决心学Java后台了》,今天抽空开始学习Java的设计模式了 。计划有时间就去学习,你这么有时间,还不来一起上车吗? 之所以要学习Java模式,是因...

codeGoogle
2018/10/30
0
0
Java语言编程学习之Lambda表达式设计和架构的原则[图]

Java语言编程学习之Lambda表达式设计和架构的原则[图]: 大家都知道,Lambda表达式是对Java语言的一点简单改进,在JDK标准类库中,运行它的方式各种各样。但是大多数的Java代码都不是由开发J...

原创小博客
2018/07/17
0
0
现代Java进阶之路必备技能——2019 版

Java技术的学习阶段有三 第1个是java基础,比如对集合类,并发,IO,JVM,内存模型,泛型,异常,反射,等有深入了解。 第2个是全面的互联网技术相关知识,比如redis,mogodb,nginx,代码自...

Java小仙女
03/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nproc systemd on CentOS 7

Increasing nproc for processes launched by systemd on CentOS 7 Ask Question I have successfully increased the nofile and nproc value for the local users, but I couldn't find a p......

MtrS
36分钟前
1
0
了解微信小程序下拉刷新功能

小程序提供了这个事件。 onPullDownRefresh() 监听用户下拉刷新事件。 如果要开启下拉刷新功能,要先到json配置: "enablePullDownRefresh":true 配置后下拉有反应了但是没有加载效果,在onP...

oixan__
今天
2
0
springmvc java对象转json,上传下载(未完)拦截器Interceptor以及源码解析(未完待续)

package com.atguigu.my.controller;import java.util.Collection;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Contr......

architect刘源源
今天
29
0
[日更-2019.5.24、25、26] Android系统中的Binder通信机制分析(一)--servicemanager

声明 其实对于Android系统Binder通信的机制早就有分析的想法,记得去年6、7月份Mr.Deng离职期间约定一起对其进行研究的,但因为我个人问题没能实施这个计划,留下些许遗憾... 最近,刚好在做...

Captain_小馬佩德罗
昨天
24
0
聊聊dubbo的DataStore

序 本文主要研究一下dubbo的DataStore DataStore dubbo-2.7.2/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStore.java @SPI("simple")public interface DataStore { ......

go4it
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部