设计模式之中介者模式
中介者模式
所谓中介者模式是指“用一个中介对象来封装一些列的对象交互,中介者是各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互”。
1、UML类图如下;
2、代码如下:中介者
package test.patterns.mediator;//抽象中介者类 public abstract class Mediator { public abstract void send(String info,Schoolgirl schoolgirl); } package test.patterns.mediator;// 具体中介者类 public class ConcreteMediator extends Mediator{ // 具体同事对象1 private College college1; // 具体同事对象2 private College college2; //省略get,set // 重写发送消息方法,以对象为依据进行选择判断,从而达到通知对象的目的。 @Override public void send(String info, College college) { if(college == college1){ college2.notifyInfo(info); }else{ college1.notifyInfo(info); } } }
package test.patterns.mediator;// 抽象同事类public abstract class College { protected Mediator mediator; public College(Mediator mediator){ this.mediator = mediator; }}package test.patterns.mediator;//具体同事对象1public class College1 extends College{ public College1(Mediator mediator) { super(mediator); } public void send(String info){ // 发送消息时通常是由中介者发送出去 mediator.send(info, this); } public void notifyInfo(String info){ String a="同事1说:"; System.out.println("同事1说:"+info); } } package test.patterns.mediator;//具体同事对象2 public class College2 extends College{ public College2(Mediator mediator) { super(mediator); } public void send(String info){ // 发送消息时通常由中介者发送出去 mediator.send(info, this); } public void notifyInfo(String info){ String a="同事2说:";System.out.println("同事2说:"+info); } }