簡體   English   中英

調解員模式的限制

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM