2011-03-09 6 views
0

자바에서 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

전달 된 개체를 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

가 잘 작동합니다 다음 예제를 고려하십시오. 관찰하고자하는 모든 모델/관측 대상에 단일 뷰/관측기를 추가하면됩니다.