打字猴:1.70046951e+09
1700469510
1700469511 }
1700469512
1700469513 我们现在看到的是一个纯净的观察者,在具体项目中该类有很多的变种,在22.4一节中介绍。
1700469514
1700469515 我们再来看观察者角色,如代码清单22-17所示。
1700469516
1700469517 代码清单22-17 观察者
1700469518
1700469519 public interface Observer{
1700469520
1700469521 //更新方法
1700469522
1700469523 public void update();
1700469524
1700469525 }
1700469526
1700469527 观察者一般是一个接口,每一个实现该接口的实现类都是具体观察者,如代码清单22-18所示。
1700469528
1700469529 代码清单22-18 具体观察者
1700469530
1700469531 public class ConcreteObserver implements Observer{
1700469532
1700469533 //实现更新方法
1700469534
1700469535 public void update(){
1700469536
1700469537 System.out.println(“接收到信息,并进行处理!”);
1700469538
1700469539 }
1700469540
1700469541 }
1700469542
1700469543 那其他模块是怎么来调用的呢?我们编写一个Client类来描述,如代码清单22-19所示。
1700469544
1700469545 代码清单22-19 场景类
1700469546
1700469547 public class Client{
1700469548
1700469549 public static void main(String[]args){
1700469550
1700469551 //创建一个被观察者
1700469552
1700469553 ConcreteSubject subject=new ConcreteSubject();
1700469554
1700469555 //定义一个观察者
1700469556
1700469557 Observer obs=new ConcreteObserver();
1700469558
1700469559 //观察者观察被观察者
[ 上一页 ]  [ :1.70046951e+09 ]  [ 下一页 ]