如何从父对象通知所有子对象?

时间:2013-06-01 08:21:42

标签: java oop

假设我有一个父对象,我有几个Children对象。 如果一个孩子做了一些特殊的动作,我想通知所有其他孩子。 我该怎么办? 我应该将所有孩子存放在某个阵列中还是有其他更方便的方法?

2 个答案:

答案 0 :(得分:5)

在您的情况下,父对象为Observable,子对象为Observers

执行某些特殊操作的对象必须实现Observable接口:

public interface Observable {
    void addObserver(Observer o);
    void removebserver(Observer o);
    void notifyObservers();
}

具体Observable类还必须包含观察者数组(此处为子对象)。 所以子对象必须实现简单的Observer接口。

public interface Observer {
    void update(/*data which you need to update in your children objects*/);
}

稍后您需要使用Observers方法将所有子对象注册到父对象中的Observable.addObserver(Observer o);数组。然后,您可以使用Observable.notifyObservers()方法向他们发送信息。

另请查看Wikipedia

答案 1 :(得分:2)

用户观察者模式,从这里了解更多信息:

http://en.wikipedia.org/wiki/Observer_pattern