1700469460
1700469461
//增加一个观察者
1700469462
1700469463
public void addObserver(Observer o){
1700469464
1700469465
this.obsVector.add(o);
1700469466
1700469467
}
1700469468
1700469469
//删除一个观察者
1700469470
1700469471
public void delObserver(Observer o){
1700469472
1700469473
this.obsVector.remove(o);
1700469474
1700469475
}
1700469476
1700469477
//通知所有观察者
1700469478
1700469479
public void notifyObservers(){
1700469480
1700469481
for(Observer o:this.obsVector){
1700469482
1700469483
o.update();
1700469484
1700469485
}
1700469486
1700469487
}
1700469488
1700469489
}
1700469490
1700469491
被观察者的职责非常简单,就是定义谁能够观察,谁不能观察,程序中使用ArrayList和Vector没有太大的差别,ArrayList是线程异步,不安全;Vector是线程同步,安全——就这点区别。我们再来看具体的被观察者,如代码清单22-16所示。
1700469492
1700469493
代码清单22-16 具体被观察者
1700469494
1700469495
public class ConcreteSubject extends Subject{
1700469496
1700469497
//具体的业务
1700469498
1700469499
public void doSomething(){
1700469500
1700469501
/*
1700469502
1700469503
*do something
1700469504
1700469505
*/
1700469506
1700469507
super.notifyObservers();
1700469508
1700469509
}
[
上一页 ]
[ :1.70046946e+09 ]
[
下一页 ]