1700468846
1700468847
1700468848
图22-2 通过后台线程监控
1700468849
1700468850
这个类图应该是程序员最容易想到的,你要监控,我就给你找个间谍角色(Spy类),我们来看程序的实现,先看我们的主角韩非子的接口(类似于韩非子这样的人,被观察者角色),如代码清单22-1所示。
1700468851
1700468852
代码清单22-1 被观察者接口
1700468853
1700468854
public interface IHanFeiZi{
1700468855
1700468856
//韩非子也是人,也要吃早饭的
1700468857
1700468858
public void haveBreakfast();
1700468859
1700468860
//韩非之也是人,是人就要娱乐活动
1700468861
1700468862
public void haveFun();
1700468863
1700468864
}
1700468865
1700468866
对接口进行扩充,增加了两个状态isHavingBreakfast(是否在吃早饭)和isHavingFun(是否在娱乐),以方便Spy进行监控,如代码清单22-2所示。
1700468867
1700468868
代码清单22-2 具体的被观察者
1700468869
1700468870
public class HanFeiZi implements IHanFeiZi{
1700468871
1700468872
//韩非子是否在吃饭,作为监控的判断标准
1700468873
1700468874
private boolean isHavingBreakfast=false;
1700468875
1700468876
//韩非子是否在娱乐
1700468877
1700468878
private boolean isHavingFun=false;
1700468879
1700468880
//韩非子要吃饭了
1700468881
1700468882
public void haveBreakfast(){
1700468883
1700468884
System.out.println(“韩非子:开始吃饭了……”);
1700468885
1700468886
this.isHavingBreakfast=true;
1700468887
1700468888
}
1700468889
1700468890
//韩非子开始娱乐了
1700468891
1700468892
public void haveFun(){
1700468893
1700468894
System.out.println(“韩非子:开始娱乐了……”);
1700468895
[
上一页 ]
[ :1.700468846e+09 ]
[
下一页 ]