1700464120
1700464121
}else{
1700464122
1700464123
if(this.nextHandler!=null){//有后续环节,才把请求往后递送
1700464124
1700464125
this.nextHandler.HandleMessage(women);
1700464126
1700464127
}else{//已经没有后续处理人了,不用处理了
1700464128
1700464129
System.out.println(”–没地方请示了,按不同意处理–\n”);
1700464130
1700464131
}
1700464132
1700464133
}
1700464134
1700464135
}
1700464136
1700464137
/*
1700464138
1700464139
*如果不属于你处理的请求,你应该让她找下一个环节的人,如女儿出嫁了,
1700464140
1700464141
*还向父亲请示是否可以逛街,那父亲就应该告诉女儿,应该找丈夫请示
1700464142
1700464143
*/
1700464144
1700464145
public void setNext(Handler_handler){
1700464146
1700464147
this.nextHandler=_handler;
1700464148
1700464149
}
1700464150
1700464151
//有请示那当然要回应
1700464152
1700464153
protected abstract void response(IWomen women);
1700464154
1700464155
}
1700464156
1700464157
方法比较长,但是还是比较简单的,读者有没有看到,其实在这里也用到模板方法模式,在模板方法中判断请求的级别和当前能够处理的级别,如果相同则调用基本方法,做出反馈;如果不相等,则传递到下一个环节,由下一环节做出回应,如果已经达到环节结尾,则直接做不同意处理。基本方法response需要各个实现类实现,每个实现类只要实现两个职责:一是定义自己能够处理的等级级别;二是对请求做出回应,我们首先来看首节点Father类,如代码清单16-9所示。
1700464158
1700464159
代码清单16-9 父亲类
1700464160
1700464161
public class Father extends Handler{
1700464162
1700464163
//父亲只处理女儿的请求
1700464164
1700464165
public Father(){
1700464166
1700464167
super(Handler.FATHER_LEVEL_REQUEST);
1700464168
1700464169
}
[
上一页 ]
[ :1.70046412e+09 ]
[
下一页 ]