设计模式之中介者模式
2010-06-15 21:07
260 查看
public class MediatorTest1 { public static void main(String[] args) { ConcreteMediator m = new ConcreteMediator(); ConcreteColleague1 c1 = new ConcreteColleague1(m); ConcreteColleague2 c2 = new ConcreteColleague2(m); m.setColleague1(c1); m.setColleague2(c2); c1.Send("饭吃过了吗?"); c2.Send("没有呢,你打算请客"); System.out.println(); } } abstract class Mediator { abstract public void Send(String message,Colleague colleague); } abstract class Colleague { protected Mediator mediator; public Colleague(Mediator mediator) { this.mediator= mediator; } } class ConcreteMediator extends Mediator { private ConcreteColleague1 colleague1; private ConcreteColleague2 colleague2; public void setColleague1(ConcreteColleague1 colleague1) { this.colleague1 = colleague1; } public void setColleague2(ConcreteColleague2 colleague2) { this.colleague2 = colleague2; } public void Send(String message,Colleague colleague) { if(colleague == colleague1) { colleague2.Notify(message); } else { colleague1.Notify(message); } } } class ConcreteColleague1 extends Colleague { public ConcreteColleague1(Mediator mediator) { super(mediator); } public void Send(String message) { mediator.Send(message,this); } public void Notify(String message) { System.out.println("同事1得到信息: "+message); } } class ConcreteColleague2 extends Colleague { public ConcreteColleague2(Mediator mediator) { super(mediator); } public void Send(String message) { mediator.Send(message,this); } public void Notify(String message) { System.out.println("同事2得到信息: "+message); } }
public class MediatorTest2 { public static void main(String[] args) { UnitedNationSecurityCouncil UNSC = new UnitedNationSecurityCouncil(); USA c1 = new USA(UNSC); Iraq c2 = new Iraq(UNSC); UNSC.setColleague1(c1); UNSC.setColleague2(c2); c1.Declare("不准研制核武器,否则要发动战争"); c2.Declare("我们没有核武器,也不怕侵略"); System.out.println(); } } abstract class UnitedNations { abstract public void Declare(String message,Country colleague); } abstract class Country { protected UnitedNations mediator; public Country(UnitedNations mediator) { this.mediator = mediator; } } 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); } } 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); } } class UnitedNationSecurityCouncil extends UnitedNations { public USA colleague1; public Iraq colleague2; public void setColleague1(USA colleague1) { this.colleague1 = colleague1; } public void setColleague2(Iraq colleague2) { this.colleague2 = colleague2; } public void Declare(String message,Country colleague) { if(colleague == colleague1) { colleague2.GetMessage(message); } else { colleague1.GetMessage(message); } } }
相关文章推荐
- 游戏中的设计模式三(中介者模式)
- 设计模式之---中介者模式
- 设计模式之中介者模式
- 23种设计模式(8):中介者模式
- 【设计模式】行为模式之中介者Mediator
- 设计模式---中介者模式(C++实现)
- 设计模式(21)-Mediator 中介者模式
- JAVA设计模式十三--Mediator(中介者模式)
- 设计模式之-中介者模式
- 设计模式 之 中介者
- 设计模式之中介者模式
- 设计模式之Mediator(中介者)
- Android[高级教程] 设计模式之六 中介者模式(二)
- 24天学会设计模式---------中介者模式
- GoF23种设计模式之行为型模式之中介者模式
- 设计模式之中介者模式(Mediator)
- Mediator(中介者)设计模式
- 设计模式袖珍版 连续转载之 - Mediator(中介者)
- 设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)
- 设计模式 中介者模式