[英]Restrictions in Mediator Pattern
有沒有一種方法可以在“ 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接口拆分為單獨的接口,進行分組操作。
如果您需要對此進行細粒度的控制,則可以繼承接口。
ConcreteMediator可以實現多個接口。 不要對同事使用繼承,也不要將ConcreteMediator傳遞給其構造函數作為將中介程序接口拆分為接口的一種引用類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.