打字猴:1.70046946e+09
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 ]  [ 下一页 ]