【问题标题】:Restrictions in Mediator Pattern中介者模式的限制
【发布时间】:2018-07-19 19:02:15
【问题描述】:

有没有办法在“中介”设计模式中实现访问控制? [REF]

例如,我有 3 个对象通过调解器在它们之间进行通信:

public interface Mediator {

    public void operationA();
    public void operationB();
    public void operationC();

}

public abstract class Colleague {

    protected Mediator mediator;

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

    public Mediator getMediator() {
        return mediator;
    }

}

public class ConcreteMediator implements Mediator() {

    private ObjectA objectA;
    private ObjectA objectB;
    private ObjectA objectC;

    public void operationA() {
        objectA.operationA();
    }

    public void operationB() {
        objectB.operationB();
    }

    public void operationC() {
        objectC.operationC();
    }
}

public class ObjectA extends Colleague {
    public operationA() {
        System.out.println("Operation A");
    }
}

public class ObjectB extends Colleague {
    public operationB() {
        System.out.println("Operation B");
    }
}

public class ObjectC extends Colleague {
    public operationC() {
        System.out.println("Operation C");
    }
}

并且我希望操作 A 只能由对象 C 或对象 A 执行。实现此限制的最佳方法是什么?

【问题讨论】:

    标签: java design-patterns mediator


    【解决方案1】:

    将 Mediator 接口拆分为单独的接口,对操作进行分组。

    如果您需要对此进行细粒度控制,接口继承是可以的。

    ConcreteMediator 可以实现多个接口。不要为同事使用继承,并将 ConcreteMediator 作为 您将中介接口拆分成的接口之一的引用类型。

    【讨论】:

      猜你喜欢
      • 2014-10-14
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      • 2022-08-21
      相关资源
      最近更新 更多