首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java中介者形式

2012-09-07 
java中介者模式Uml图://1.Colleague//Colleague.javapublic interface Colleague {public void giveMess(S

java中介者模式

Uml图:


java中介者形式

//1.Colleague//Colleague.javapublic interface Colleague {      public void giveMess(String[] mess);      public void receiverMess(String mess);      public void setName(String name);      public String getName();}//2.具体同事类//ColleagueA.javapublic class ColleagueA implements Colleague {      ConcreteMediator mediator;      String name;      public ColleagueA(ConcreteMediator mediator) {            this.mediator = mediator;            mediator.registerColleagueA(this);      }      @Override      public String getName() {            return name;      }      @Override      public void giveMess(String[] mess) {            mediator.deliverMess(this, mess);      }      @Override      public void receiverMess(String mess) {            System.out.println(name + "收到信息:");            System.out.println("\t" + mess);      }      @Override      public void setName(String name) {            this.name = name;      }}//ColleagueB.javapublic class ColleagueB implements Colleague {      ConcreteMediator mediator;      String name;      public ColleagueB(ConcreteMediator mediator) {            this.mediator = mediator;            mediator.registerColleagueB(this);      }      @Override      public String getName() {            return name;      }      @Override      public void giveMess(String[] mess) {            mediator.deliverMess(this, mess);      }      @Override      public void receiverMess(String mess) {            System.out.println(name + "收到信息:");            System.out.println("\t" + mess);      }      @Override      public void setName(String name) {            this.name = name;      }}//ColleagueC.javapublic class ColleagueC implements Colleague {      ConcreteMediator mediator;      String name;      public ColleagueC(ConcreteMediator mediator) {            this.mediator = mediator;            mediator.registerColleagueC(this);      }      @Override      public String getName() {            return name;      }      @Override      public void giveMess(String[] mess) {            mediator.deliverMess(this, mess);      }      @Override      public void receiverMess(String mess) {            System.out.println(name + "收到信息:");            System.out.println("\t" + mess);      }      @Override      public void setName(String name) {            this.name = name;      }}//具体中介者:ConcreateMediator.javapublic class ConcreteMediator {      ColleagueA colleagueA;      ColleagueB colleagueB;      ColleagueC colleagueC;      public void registerColleagueA(ColleagueA colleagueA) {            this.colleagueA = colleagueA;      }      public void registerColleagueB(ColleagueB colleagueB) {            this.colleagueB = colleagueB;      }      public void registerColleagueC(ColleagueC colleagueC) {            this.colleagueC = colleagueC;      }      public void deliverMess(Colleague colleague, String[] mess) {            if (mess.length >= 2) {                  if (colleague == colleagueA) {                        colleagueB.receiverMess(colleague.getName() + mess[0]);                        colleagueC.receiverMess(colleague.getName() + mess[1]);                  } else if (colleague == colleagueB) {                        colleagueA.receiverMess(colleague.getName() + mess[0]);                        colleagueC.receiverMess(colleague.getName() + mess[1]);                  } else if (colleague == colleagueC) {                        colleagueA.receiverMess(colleague.getName() + mess[0]);                        colleagueB.receiverMess(colleague.getName() + mess[1]);                  }            }      }}//模式使用:public class Application {      public static void main(String[] args) {            ConcreteMediator mediator =new ConcreteMediator();            ColleagueA colleagueA=new ColleagueA(mediator);            ColleagueB colleagueB=new ColleagueB(mediator);            ColleagueC colleagueC=new ColleagueC(mediator);            colleagueA.setName("A国");            colleagueB.setName("B国");            colleagueC.setName("C国");            String messA[] ={"要求归还100","要求归还500"};            colleagueA.giveMess(messA);            String messB[] ={"要求归还200","要求归还300"};            colleagueB.giveMess(messB);            String messC[] ={"要求归还50","要求归还800"};            colleagueC.giveMess(messC);                  }}
?

热点排行