2011-03-09 59 views
0

我在JAVA中使用Observable類/ Observer接口來實現觀察者模式。如果我有一個對象,我希望能夠觀察其他可觀察對象(多個可觀察對象)並且有多個觀察者(多個觀察者)多個Observer和多個Observable

該問題在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

通過讓傳遞的對象成爲對象的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()); 
0

應該正常工作。只需將該單視圖/觀察者添加到您要觀察的所有模型/觀察對象即可。