Вот мои Наблюдатель и Наблюдаемые интерфейсы
public interface Observable<T> {
void addObserver(Observer<T> o);
void removeObserver(Observer<T> o);
void removeAllObservers();
void notifyObservers();
}
public interface Observer<T> {
public void update(Observable<T> o);
}
Они работают, если у меня есть два класса, которые знают друг о друге, однако, как мне справиться с ситуацией, как показано ниже.
- RootComposite (Создает список слов)
- WordListComposite (Создает слово)
Теперь, если RootCompoiste нужно знать об изменениях в WordListComposite, я могу реализовать его следующим образом:
public class RootComposite extends Composite implements Observer<WordListComposite > {
public RootComposite() {
WordListComposite wl = new WordListComposite();
wl.addObserver(this);
}
...
@Override
public void update(WordListComposite o) {
this.lblMessage = o.getMessage();
}
...
}
Это будет работать как положено.
Но как RootComposite получает обновления от WordDialog?
Каков наилучший подход в этом случае?