有没有办法在“Mediator”设计模式中实现访问控制? [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 执行。实现此限制的最佳方法是什么?
最佳答案
将Mediator接口(interface)拆分为单独的接口(interface),对操作进行分组。
如果您需要对此进行细粒度控制,接口(interface)继承就可以。
ConcreteMediator可以实现多个接口(interface)。不要对同事使用继承,并将 ConcreteMediator 作为 您将中介器接口(interface)拆分成的接口(interface)之一的引用类型。
关于java - 中介者模式的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51419797/