打字猴:1.700469096e+09
1700469096
1700469097
1700469098
1700469099 图22-3 通过聚集方式监控
1700469100
1700469101 类图非常简单,就是在HanFeiZi类中引用了LiSi实例,看我们程序代码怎么修改,IHanFeiZi接口完全没有修改,可以参考代码清单22-1所示。我们来看实现类的修改,如代码清单22-7所示。
1700469102
1700469103 代码清单22-7 通过聚集方式的被观察者
1700469104
1700469105 public class HanFeiZi implements IHanFeiZi{
1700469106
1700469107 //把李斯声明出来
1700469108
1700469109 private ILiSi liSi=new LiSi();
1700469110
1700469111 //韩非子要吃饭了
1700469112
1700469113 public void haveBreakfast(){
1700469114
1700469115 System.out.println(“韩非子:开始吃饭了……”);
1700469116
1700469117 //通知李斯
1700469118
1700469119 this.liSi.update(“韩非子在吃饭”);
1700469120
1700469121 }
1700469122
1700469123 //韩非子开始娱乐了
1700469124
1700469125 public void haveFun(){
1700469126
1700469127 System.out.println(“韩非子:开始娱乐了……”);
1700469128
1700469129 this.liSi.update(“韩非子在娱乐”);
1700469130
1700469131 }
1700469132
1700469133 }
1700469134
1700469135 韩非子HanFeiZi实现类就把接口的两个方法实现就可以了,在每个方法中调用LiSi.update()方法,完成李斯观察韩非子的职责,李斯的接口和实现类都没有任何改变,请参考代码清单22-3、22-4。我们再来看看Client程序的变更,如代码清单22-8所示。
1700469136
1700469137 代码清单22-8 通过聚集方式的场景类
1700469138
1700469139 public class Client{
1700469140
1700469141 public static void main(String[]args){
1700469142
1700469143 //定义出韩非子
1700469144
1700469145 HanFeiZi hanFeiZi=new HanFeiZi();
[ 上一页 ]  [ :1.700469096e+09 ]  [ 下一页 ]