打字猴:1.700464082e+09
1700464082
1700464083 图16-3 顺序处理的类图
1700464084
1700464085 从类图上看,三个实现类Father、Husband、Son只要实现构造函数和父类中的抽象方法response就可以了,具体由谁处理女性提出的请求,都已经转移到了Handler抽象类中,我们来看Handler怎么实现,如代码清单16-8所示。
1700464086
1700464087 代码清单16-8 修改后的Handler类
1700464088
1700464089 public abstract class Handler{
1700464090
1700464091 public final static int FATHER_LEVEL_REQUEST=1;
1700464092
1700464093 public final static int HUSBAND_LEVEL_REQUEST=2;
1700464094
1700464095 public final static int SON_LEVEL_REQUEST=3;
1700464096
1700464097 //能处理的级别
1700464098
1700464099 private int level=0;
1700464100
1700464101 //责任传递,下一个人责任人是谁
1700464102
1700464103 private Handler nextHandler;
1700464104
1700464105 //每个类都要说明一下自己能处理哪些请求
1700464106
1700464107 public Handler(int_level){
1700464108
1700464109 this.level=_level;
1700464110
1700464111 }
1700464112
1700464113 //一个女性(女儿、妻子或者是母亲)要求逛街,你要处理这个请求
1700464114
1700464115 public final void HandleMessage(IWomen women){
1700464116
1700464117 if(women.getType()==this.level){
1700464118
1700464119 this.response(women);
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 }
[ 上一页 ]  [ :1.700464082e+09 ]  [ 下一页 ]