1700469181
1700469182
Observable是被观察者,就是类似韩非子这样的人,在Observable接口中有三个比较重要的方法,分别是addObserver增加观察者,deleteObserver删除观察者,notifyObservers通知所有的观察者,这是什么意思呢?我这里有一个信息,一个对象,我可以允许有多个对象来察看,你观察也成,我观察也成,只要是观察者就成,也就是说我的改变或动作执行,会通知其他的对象,看程序会更明白一点,先看Observable接口,如代码清单22-9所示。
1700469183
1700469184
代码清单22-9 被观察者接口
1700469185
1700469186
public interface Observable{
1700469187
1700469188
//增加一个观察者
1700469189
1700469190
public void addObserver(Observer observer);
1700469191
1700469192
//删除一个观察者
1700469193
1700469194
public void deleteObserver(Observer observer);
1700469195
1700469196
//既然要观察,我发生改变了他也应该有所动作,通知观察者
1700469197
1700469198
public void notifyObservers(String context);
1700469199
1700469200
}
1700469201
1700469202
这是一个通用的被观察者接口,所有的被观察者都可以实现这个接口。再来看韩非子的实现类,如代码清单22-10所示。
1700469203
1700469204
代码清单22-10 被观察者实现类
1700469205
1700469206
public class HanFeiZi implements Observable,IHanFeiZi{
1700469207
1700469208
//定义个变长数组,存放所有的观察者
1700469209
1700469210
private ArrayList<Observer>observerList=new ArrayList<Observer>();
1700469211
1700469212
//增加观察者
1700469213
1700469214
public void addObserver(Observer observer){
1700469215
1700469216
this.observerList.add(observer);
1700469217
1700469218
}
1700469219
1700469220
//删除观察者
1700469221
1700469222
public void deleteObserver(Observer observer){
1700469223
1700469224
this.observerList.remove(observer);
1700469225
1700469226
}
1700469227
1700469228
//通知所有的观察者
1700469229
1700469230
public void notifyObservers(String context){
[
上一页 ]
[ :1.700469181e+09 ]
[
下一页 ]