您的位置:首页 > 其它

中介者模式——对象行为型模式

2016-10-10 18:05 190 查看
一、意图

用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显示地互相引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。

二、适用性

在下列情况下使用中介者模式:

一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。

一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象。

想定制一个分布在多个类中的行为,而又不想生成太多的子类。

三、结构



四、代码

public  abstract class Mediator {
public abstract void method();
}


public class ConcreteMediator extends Mediator {

protected ConcreteColleagueA colleagueA;//具体同事A
protected ConcreteColleagueB colleagueB;//具体同事B

@Override
public void method() {
colleagueA.action();
colleagueB.action();
}

public void setColleagueA(ConcreteColleagueA colleagueA) {
this.colleagueA = colleagueA;
}

public void setColleagueB(ConcreteColleagueB colleagueB) {
this.colleagueB = colleagueB;
}
}


public abstract class Colleague {
protected Mediator mediator ;//中介者对象

public Colleague(Mediator mediator){
this.mediator = mediator;
}

/**
* 同事角色的具体行为,由子类去实现
*/
public abstract void action();
}


public class ConcreteColleagueA extends Colleague {
public ConcreteColleagueA(Mediator mediator) {
super(mediator);
}

@Override
public void action() {
System.out.println("ColleagueA 将信息递交给中介者处理");
}
}


public class ConcreteColleagueB extends Colleague {
public ConcreteColleagueB(Mediator mediator) {
super(mediator);
}

@Override
public void action() {
System.out.println("ColleagueB 将信息递交给中介者处理");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息