多个观察者和多个可观察者

时间:2011-03-09 18:17:03

标签: java design-patterns observer-pattern

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

问题不是B类中的可观察问题,但我想在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)}

有什么建议吗?感谢。

2 个答案:

答案 0 :(得分:0)

通过让传递的对象成为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());

答案 1 :(得分:0)

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