打字猴:1.70046966e+09
1700469660
1700469661 public void haveFun(){
1700469662
1700469663 System.out.println(“韩非子:开始娱乐了……”);
1700469664
1700469665 super.setChanged();
1700469666
1700469667 this.notifyObservers(“韩非子在娱乐”);
1700469668
1700469669 }
1700469670
1700469671 }
1700469672
1700469673 改变得不多,引入了一个java.util.Observable对象,删除了增加、删除观察者的方法,简单了很多,那我们再来看观察者的实现类,如代码清单22-21所示。
1700469674
1700469675 代码清单22-21 优化后的观察者
1700469676
1700469677 public class LiSi implements Observer{
1700469678
1700469679 //首先李斯是个观察者,一旦韩非子有活动,他就知道,他就要向老板汇报
1700469680
1700469681 public void update(Observable observable,Object obj){
1700469682
1700469683 System.out.println(“李斯:观察到李斯活动,开始向老板汇报了……”);
1700469684
1700469685 this.reportToQiShiHuang(obj.toString());
1700469686
1700469687 System.out.println(“李斯:汇报完毕……\n”);
1700469688
1700469689 }
1700469690
1700469691 //汇报给秦始皇
1700469692
1700469693 private void reportToQiShiHuang(String reportContext){
1700469694
1700469695 System.out.println(“李斯:报告,秦老板!韩非子有活动了–>”+reportContext);
1700469696
1700469697 }
1700469698
1700469699 }
1700469700
1700469701 只改变了粗体部分,应java.util.Observer接口要求update传递过来两个变量,Observable这个变量我们没用到(接口中定义必须实现的),就不处理了。其他两个观察者实现类也是相同的改动,不再赘述。
1700469702
1700469703 场景类没有改动,运行结果也完全相同,大家看看我们使用了Java提供的观察者模式后是不是简单了很多,所以在Java的世界里横行时,多看看API,有帮助很大,很多东西Java已经帮你设计了一个良好的框架了。
1700469704
1700469705
1700469706
1700469707
1700469708 设计模式之禅 22.4.2 项目中真实的观察者模式
1700469709
[ 上一页 ]  [ :1.70046966e+09 ]  [ 下一页 ]