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 ]
[
下一页 ]