gpt4 book ai didi

java - 中介者模式的限制

转载 作者:行者123 更新时间:2023-12-02 10:59:49 25 4
gpt4 key购买 nike

有没有办法在“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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com