java设计模式_中介者模式
2014-09-24 00:00
260 查看
摘要: 中介者模式,用一个中介对象来封装一系列类之间的相互调用,这样不同类就不用显示地相互调用,从而降低了耦合度,而且可以独立改变相互调用。其实这样是把相互调用的逻辑复杂性搬到了中介者对象里面了,降低了相互调用对象间的耦合,但是如果相互调用的逻辑过于复杂,将会导致中介者逻辑非常复杂,因为中介者逻辑里面包含了所有类的相互调用逻辑复杂度。
/** * @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("管你屁事"); } }
相关文章推荐
- 设计模式(十七)----- 中介者模式(Mediator)----(JAVA版)
- Java设计模式之十八(中介者模式)
- Java设计模式(十一)访问者模式 中介者模式
- [译]Java 设计模式之中介者
- java设计模式之中介者模式
- JAVA设计模式—中介者模式(Mediator)
- JAVA系列-设计模式-中介者模式
- Java设计模式之中介者模式(Mediator Pattern)简介
- java设计模式22——中介者模式(Mediator)
- JAVA设计模式之 中介者模式【Mediator Pattern】
- 设计模式(java) ------ 中介者模式
- Java开发中的23种设计模式之二十二:中介者模式(Mediator)
- JAVA设计模式十三:--Mediator(中介者模式)
- 设计模式(java)--中介者模式之同事的关联
- java设计模式之中介者模式Mediator
- Java设计模式十二: 中介者模式(Mediator Pattern)
- JAVA-设计模式之中介者模式
- JAVA设计模式——中介者模式(Mediator)
- java设计模式--行为型模式--中介者模式
- 三、Java设计模式——中介者模式