java 观察者模式,求一个详细解释。

2020-06-27 财经 138阅读

我觉得你别想的太复杂。

观察者模式需要有一个主题,还有一个或多个观察者。

在主题类中有一个观察者的集合。

当调用主题类的某些方法时,自动循环这个集合,调用观察者的方法。

举个例子:

public class CountSubject implements ICountSubject {
private List list;

CountSubject() {
list = new ArrayList();
}

@Override
public void count(int num) {
for (int i=0;i System.out.println(this.getClass().getName() + "-->" + i);
this.notifyObserver(i);
}
}
public void addObserver(Observer obs) {
this.list.add(obs);
}
public boolean removeObserver(Observer obs) {
return this.list.remove(obs);
}
public void removeAllObservers() {
this.list.clear();
}

public void notifyObserver(int i) {
for (int a=0;a Observer o = list.get(a);
o.update(i);
}
}
}

在客户端调用时,先要初始化一个或多个观察者,然后添加到主题对象。

然后调用主题对象的方法。在主题对象的方法中会自动调用观察者的方法。

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com