Многократный Наблюдатель и Многократный Наблюдаемый - PullRequest
0 голосов
/ 09 марта 2011

Я использую интерфейс Observable class / Observer в JAVA для реализации шаблона наблюдателя.Если у меня есть объект, который я хочу иметь возможность наблюдать несколько других наблюдаемых объектов (несколько наблюдаемых) и иметь несколько наблюдателей (несколько наблюдателей)

Проблема не в наблюдении anObservable в классе 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 голосов
/ 10 марта 2011

должно работать нормально.просто добавьте это единственное представление / наблюдателя ко всем моделям / наблюдаемым, которые вы хотите наблюдать.

0 голосов
/ 09 марта 2011

Множество наблюдаемых объектов может быть достигнуто, если переданный объект будет 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());
...