这是我的 Observer 和 Observable 接口
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 接收更新?
在这种情况下,最好的方法是什么?