中介者模式

//中介者模式
/*abstract class Mediator{
 public abstract void Send(String message,Colleague colleague);
}
abstract class Colleague{
 protected Mediator mediator;
 public Colleague(Mediator mediator) {
  super();
  this.mediator = mediator;
 }
}
class ConcreteMediator extends Mediator{
 private ConcreteColleague1 c1;
 private ConcreteColleague2 c2;
 public void setConcreteColleague1(ConcreteColleague1 c1){
  this.c1=c1;
 }
 public void setConcreteColleague2(ConcreteColleague2 c2){
  this.c2=c2;
 }
 public void Send(String message, Colleague colleague) {
  // TODO Auto-generated method stub
  if(colleague==c1) {
   c1.Notify(message);
  }
  else {
   c2.Notify(message);
  }
 }
}
class ConcreteColleague1 extends Colleague{
 public ConcreteColleague1(Mediator mediator) {
  super(mediator);
  // TODO Auto-generated constructor stub
 }
 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);
  // TODO Auto-generated constructor stub
 }
 public void Send(String message) {
  mediator.Send(message,this);
 }
 public void Notify(String message) {
  System.out.println("同事2得到消息:"+message);
 }
}
public class Main {
   public static void main(String args[])
   {
    ConcreteMediator m=new ConcreteMediator();
    ConcreteColleague1 cc1=new ConcreteColleague1(m);
    ConcreteColleague2 cc2=new ConcreteColleague2(m);
    m.setConcreteColleague1(cc1);
    m.setConcreteColleague2(cc2);
    cc1.Send("你吃过饭了吗");
    cc2.Send("没有呢,你打算请客?");
 }
}*/
//安理会做中介
public class Main {
   public static void main(String args[])
   {
    UnitedNationsSecurityCouncil unsc=new UnitedNationsSecurityCouncil();
    USA uu=new USA(unsc);
    Iraq ii=new Iraq(unsc);
    unsc.setI1(ii);
    unsc.setU1(uu);
    ii.Send("不准研制核武器,否则要发动战争");
    uu.Send("我们没有核武器,也不怕侵略");
 }
}
abstract class UnitedNations{
 public abstract void Send(String message,Country colleague);
}
abstract class Country{
 protected UnitedNations u;
 public Country(UnitedNations u) {
  super();
  this.u = u;
 }
}
class USA extends Country{
 public USA(UnitedNations u) {
  super(u);
  // TODO Auto-generated constructor stub
 }
 public void Send(String message) {
  u.Send(message, this);
 }
 public void GetMessage(String message) {
  System.out.println("美国获得对方消息:"+message);
 }
}
class Iraq extends Country{
 public Iraq(UnitedNations u) {
  super(u);
  // TODO Auto-generated constructor stub
 }
 public void Send(String message) {
  u.Send(message, this);
 }
 public void GetMessage(String message) {
  System.out.println("伊拉克获得对方消息:"+message);
 }
}
class UnitedNationsSecurityCouncil extends UnitedNations{
 private USA u1;
 private Iraq i1;
 public void setU1(USA u1) {
  this.u1 = u1;
 }
 public void setI1(Iraq i1) {
  this.i1 = i1;
 }
 public void Send(String message, Country colleague) {
  // TODO Auto-generated method stub
  if(colleague==i1) {
   i1.GetMessage(message);
  }
  else {
   u1.GetMessage(message);
  }
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值