java中介者模式
Uml图:

//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); }}?