【问题标题】:Multiple Observer and Multiple Observable多观察者和多观察者
【发布时间】:2011-03-09 18:17:02
【问题描述】:

我在 JAVA 中使用 Observable 类/Observer 接口来实现观察者模式。如果我有一个对象,我希望能够观察其他几个可观察对象(多个可观察对象)并有多个观察者(多个观察者)

问题不是 B 类中的 anObservable ,但我想在 A 和 B 中赋值以生成图表

public void update(Observable anObservable, Object anObject) {
    if(anObservable instanceof A){
        createDataSet(anObservable,null);
    }
    else if(anObservable instanceof B)
    {
        createDataSet(null,anObservable);
    }       
}
private  void (Observable anSampleObservable,Observable anAreaObservable){
// To do something with value in anSampleObservable (A) and value in anAreaObservable(B)}

有什么建议吗?谢谢。

【问题讨论】:

    标签: java design-patterns observer-pattern


    【解决方案1】:

    通过让传递的对象是Collection的对象,可以实现多个可观察对象。

    您还可以轻松拥有多个观察者或可观察者。考虑以下示例:

    class Model1 extends Observable {}
    class Model2 extends Observable {}
    
    class Controller1 implements Observer {
        public void update(Observable o, Object object) {}
    }    
    
    class Controller2 implements Observer {
        public void update(Observable o, Object object) {}
    }
    

    可以使用以下方式连接在一起:

    Model1 model1 = new Model1();
    Model2 model2 = new Model2();
    model1.addObserver(new Controller1());
    model2.addObserver(new Controller2());
    

    【讨论】:

      【解决方案2】:

      应该可以正常工作。只需将该单一视图/观察者添加到您要观察的所有模型/可观察对象中。

      【讨论】:

        猜你喜欢
        • 2021-04-13
        • 1970-01-01
        • 2011-06-17
        • 2020-05-22
        • 1970-01-01
        • 1970-01-01
        • 2018-06-11
        • 1970-01-01
        • 2022-11-17
        相关资源
        最近更新 更多