java设计模式——中介者模式
2013-02-22 21:08
375 查看
《大话设计模式》第二十五章
运行:
中介者模式和代理模式,很相似,有何区别?
中介者模式:多个事物之间是有联系的,他们之间进行通信,比如上面,美国对伊拉克说,是两个事物通信,中间通过联合国;
代理模式:不存在多个事物之间的消息通信。proxy代理甲做事,真正做事的是甲,但是甲不会去和另外一个人发生联系,即使有联系,也不是通过proxy。
package ch25; public abstract class Country { protected UnitedNations mediator; public Country(UnitedNations mediator) { this.mediator = mediator; } }
package ch25; public abstract class UnitedNations { public abstract void declare(String message, Country colleague); }
package ch25; public class Irag extends Country { public Irag(UnitedNations mediator) { super(mediator); } public void declare(String message) { mediator.declare(message, this); } public void getMessage(String message) { System.out.println("伊拉克获得对方信息:" + message); } }
package ch25; public class USA extends Country { public USA(UnitedNations mediator) { super(mediator); } public void declare(String message) { mediator.declare(message, this); } public void getMessage(String message) { System.out.println("美国获得对方信息:" + message); } }
package ch25; public class UnitedNationsSecurityCouncil extends UnitedNations { private USA colleague1; private Irag colleague2; public void setColleague1(USA colleague1) { this.colleague1 = colleague1; } public void setColleague2(Irag colleague2) { this.colleague2 = colleague2; } @Override public void declare(String message, Country colleague) { if (colleague == colleague1) { colleague2.getMessage(message); } else { colleague1.getMessage(message); } } }
package ch25; /** * 中介者模式 * @author Administrator * */ public class Client { /** * @param args */ public static void main(String[] args) { UnitedNationsSecurityCouncil unsc = new UnitedNationsSecurityCouncil(); USA c1 = new USA(unsc); Irag c2 = new Irag(unsc); unsc.setColleague1(c1); unsc.setColleague2(c2); c1.declare("不准研制核武器,否则要发动战争"); c2.declare("我们没有核武器,也不怕侵略"); } }
运行:
伊拉克获得对方信息:不准研制核武器,否则要发动战争 美国获得对方信息:我们没有核武器,也不怕侵略
中介者模式和代理模式,很相似,有何区别?
中介者模式:多个事物之间是有联系的,他们之间进行通信,比如上面,美国对伊拉克说,是两个事物通信,中间通过联合国;
代理模式:不存在多个事物之间的消息通信。proxy代理甲做事,真正做事的是甲,但是甲不会去和另外一个人发生联系,即使有联系,也不是通过proxy。
相关文章推荐
- java设计模式--行为型模式--中介者模式
- Java设计模式——Mediator(中介者)模式
- Java中介者设计模式
- 三、Java设计模式——中介者模式
- java设计模式之中介者模式
- Java设计模式(22)之中介者模式
- Java设计模式--------中介者模式
- Java设计模式学习记录-中介者模式
- Java设计模式之从[游戏中开启宝箱]分析中介者(Mediator)模式
- 设计模式之第19章-中介者模式(Java实现)
- Java设计模式-7-中介者模式
- Java设计模式-中介者模式(Mediator)
- Java设计模式之中介者模式(Mediator Pattern)简介
- 详解Java设计模式编程中的中介者模式
- Java设计模式学习记录-中介者模式
- Java23种设计模式——中介者模式
- java设计模式---中介者模式(Mediator pattern)
- 设计模式学习笔记--中介者模式Mediator pattern(Java版)
- Java设计模式之十八(中介者模式)
- Java设计模式—中介者模式