0

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

4

2 回答 2

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()方法向他们发送信息。

也可以在维基百科上查看!

于 2013-06-01T08:50:21.477 回答
2

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

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

于 2013-06-01T08:22:47.337 回答