我在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)}
有什么建议吗?感谢。
答案 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)
应该可以正常工作。只需将该视图/观察者添加到您想要观察的所有模型/可观察对象中。