1700481412
1700481413
e.printStackTrace();
1700481414
1700481415
}
1700481416
1700481417
}
1700481418
1700481419
}
1700481420
1700481421
return classes;
1700481422
1700481423
}
1700481424
1700481425
}
1700481426
1700481427
这个类请大家谨慎使用,在核心的应用中尽量不要使用该工具,它会严重影响性能。再来看LSCommand类的实现,如代码清单34-9所示。
1700481428
1700481429
代码清单34-9 具体的ls命令
1700481430
1700481431
public class LSCommand extends Command{
1700481432
1700481433
public String execute(CommandVO vo){
1700481434
1700481435
//返回链表的首节点
1700481436
1700481437
CommandName firstNode=super.buildChain(AbstractLS.class).get(0);
1700481438
1700481439
return firstNode.handleMessage(vo);
1700481440
1700481441
}
1700481442
1700481443
}
1700481444
1700481445
很简单的方法,先建立一个命令族的责任链,然后找到首节点调用。在该类中我们使用CommandVO类,它是一个封装对象,其代码如代码清单34-10所示。
1700481446
1700481447
代码清单34-10 命令对象
1700481448
1700481449
public class CommandVO{
1700481450
1700481451
//定义参数名与参数的分隔符号,一般是空格
1700481452
1700481453
public final static String DIVIDE_FLAG=””;
1700481454
1700481455
//定义参数前的符号,UNIX一般是-,如ls-la
1700481456
1700481457
public final static String PREFIX=”-“;
1700481458
1700481459
//命令名,如ls、du
1700481460
1700481461
private String commandName=””;
[
上一页 ]
[ :1.700481412e+09 ]
[
下一页 ]