《大话设计模式》java实现之中介者模式
2017-11-27 16:41
330 查看
中介者模式个人理解为中介者持有其他关联对象的引用,把原先各对象之间的复杂关系集合在中介者中去
UML
![](https://img-blog.csdn.net/20171127163933007?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlubGlueGll/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
代码结构
![](https://img-blog.csdn.net/20171127163946805?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlubGlueGll/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
运行结果
UML
代码结构
public class Client { public static void main(String[] args) { UnitedNationsSecurityCouncil unsc = new UnitedNationsSecurityCouncil(); USA c1 = new USA(unsc); Iraq c2 = new Iraq(unsc); unsc.setColleague1(c1); unsc.setColleague2(c2); c1.declare("不准研制核武器,否则要发动战争!"); c2.declare("我们没有核武器,也不怕侵略"); } }
public abstract class Country { protected UnitedNations mediator; public Country(UnitedNations mediator) { super(); this.mediator = mediator; } }
public class Iraq extends Country { public Iraq(UnitedNations mediator) { super(mediator); } //声明 public void declare(String message) { mediator.declare(message, this); } //获得消息 public void getMessage(String message) { System.out.println("伊拉克获得对方消息:" + message); } }
public abstract class UnitedNations { public abstract void declare(String message, Country colleague); }
public class UnitedNationsSecurityCouncil extends UnitedNations { private USA colleague1; private Iraq colleague2; public USA getColleague1() { return colleague1; } public void setColleague1(USA colleague1) { this.colleague1 = colleague1; } public Iraq getColleague2() { return colleague2; } public void setColleague2(Iraq colleague2) { this.colleague2 = colleague2; } @Override public void declare(String message, Country colleague) { if(colleague == colleague1) { colleague2.getMessage(message); } else { colleague1.getMessage(message); } } }
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); } }
运行结果
相关文章推荐
- 大话设计模式4 代理模式 的java代码实现
- (Mediator)中介者模式的Java实现(加修改)
- 大话设计模式之外观模式(Java版实现) 买股票还是买基金在此揭晓
- 《大话设计模式》读书笔记:策略模式+反射的Java实现
- 设计模式-中介者模式(Java实现)
- Java设计模式菜鸟系列(二十二)中介者模式建模与实现
- 大话设计模式1 简单工厂模式 的java代码实现
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 中介者模式(Mediator) - Java实现
- 《大话设计模式》java实现之原型模式
- 【GOF23设计模式】_中介者模式_同事协作类_内部类实现JAVA245
- 《大话设计模式》java实现之模版方法模式
- (Mediator)中介者模式的Java实现(加修改) 推荐
- 《大话设计模式》java实现之策略模式
- php,java实现中介者模式
- 设计模式之第19章-中介者模式(Java实现)
- 《大话设计模式》java实现之装饰器模式
- 大话设计模式2 策略模式 的java代码实现
- Java设计模式菜鸟系列(二十二)中介者模式建模与实现
- 大话设计模式3 装饰模式 的java代码实现
- 大话设计模式之模板方法模式(Java版实现)考生做试卷问题