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){
1700469231
1700469232
for(Observer observer:observerList){
1700469233
1700469234
observer.update(context);
1700469235
[
上一页 ]
[ :1.700469186e+09 ]
[
下一页 ]