これが私のオブザーバーとオブザーバブルのインターフェースです
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);
}
これらは、お互いを認識している 2 つのクラスがある場合に機能しますが、以下のような状況をどのように処理すればよいでしょうか。
- 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 から更新を受け取るのでしょうか?
この場合の最善のアプローチは何ですか?