1700481062
1700481063
}
1700481064
1700481065
return result;
1700481066
1700481067
}
1700481068
1700481069
//设置剩余参数由谁来处理
1700481070
1700481071
public void setNext(CommandName_operator){
1700481072
1700481073
this.nextOperator=_operator;
1700481074
1700481075
}
1700481076
1700481077
//每个处理者都要处理一个后缀参数
1700481078
1700481079
protected abstract String getOperateParam();
1700481080
1700481081
//每个处理者都必须实现处理任务
1700481082
1700481083
protected abstract String echo(CommandVO vo);
1700481084
1700481085
}
1700481086
1700481087
很简单,就是责任链模式中的handler,也就是中控程序,控制一个链应该如何建立。我们再来看3个ls命令族,先看AbstractLS抽象类,如代码清单34-2所示。
1700481088
1700481089
代码清单34-2 抽象ls命令
1700481090
1700481091
public abstract class AbstractLS extends CommandName{
1700481092
1700481093
//默认参数
1700481094
1700481095
public final static String DEFAULT_PARAM=””;
1700481096
1700481097
//参数a
1700481098
1700481099
public final static String A_PARAM=“a”;
1700481100
1700481101
//参数l
1700481102
1700481103
public final static String L_PARAM=“l”;
1700481104
1700481105
}
1700481106
1700481107
很惊讶,是吗?怎么是个空的抽象类?是的,确实是一个空类,只定义了3个参数名称,它有两个职责:
1700481108
1700481109
❑标记ls命令族。
1700481110
1700481111
❑个性化处理。
[
上一页 ]
[ :1.700481062e+09 ]
[
下一页 ]