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

来源:互联网 发布:加工中心钻孔手动编程 编辑:程序博客网 时间:2024/05/18 01:41

一、意图
用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显示地互相引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。
二、适用性
在下列情况下使用中介者模式:

  • 一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。
  • 一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象。
  • 想定制一个分布在多个类中的行为,而又不想生成太多的子类。

三、结构
这里写图片描述
四、代码

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 将信息递交给中介者处理");    }}
0 0
原创粉丝点击