打字猴:1.700481515e+09
1700481515 }
1700481516
1700481517 //得到命令名
1700481518
1700481519 public String getCommandName(){
1700481520
1700481521 return this.commandName;
1700481522
1700481523 }
1700481524
1700481525 //获得参数
1700481526
1700481527 public ArrayList<String>getParam(){
1700481528
1700481529 //为了方便处理空参数
1700481530
1700481531 if(this.paramList.size()==0){
1700481532
1700481533 this.paramList.add(””);
1700481534
1700481535 }
1700481536
1700481537 return new ArrayList(new HashSet(this.paramList));
1700481538
1700481539 }
1700481540
1700481541 //获得操作数
1700481542
1700481543 public ArrayList<String>getData(){
1700481544
1700481545 return this.dataList;
1700481546
1700481547 }
1700481548
1700481549 }
1700481550
1700481551 CommandVO解析一个命令,规定一个命令必须有3项:命令名、选项、操作数。如果没有呢?那就以长度为零的字符串代替,通过这样的一个约定可以大大降低命令解析的开发工作。注意getParam参数中的返回值:
1700481552
1700481553 new ArrayList(new HashSet(this.paramList));
1700481554
1700481555 为什么要这么处理?HashSet具有值唯一的优点,这样处理就是为了避免出现两个相同的参数,比如对于”ls-l-l-s”这样的命令,通过getParam返回的参数是几个呢?回答是两个:l选项和s选项。
1700481556
1700481557 我们再来看Invoker类,它是负责命令分发的类,如代码清单34-11所示。
1700481558
1700481559 代码清单34-11 命令分发
1700481560
1700481561 public class Invoker{
1700481562
1700481563 //执行命令
1700481564
[ 上一页 ]  [ :1.700481515e+09 ]  [ 下一页 ]