这是我的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);
}
如果我有两个相互了解的课程,这些工作,但是,我如何处理如下情况。
现在,如果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接收更新?
在这种情况下,最好的方法是什么?
答案 0 :(得分:0)
WordListComposite还可以实现Observer接口和WordDialog的Observable接口。 WordListComposite可以观察WordDialog,当它收到来自WordDialog的通知时,会触发向RootComposite(正在观看WordListComposite)的通知。基本上你有一个动作火,然后只是在树上发送通知。