Command.java
上传用户:hensond
上传日期:2021-12-27
资源大小:817k
文件大小:1k
源码类别:

软件工程

开发平台:

Java

  1. package com.company.command;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import com.company.ClassUtils;
  5. import com.company.CommandVO;
  6. import com.company.command_name.CommandName;
  7. import com.company.command_name.ls.AbstractLS;
  8. /**
  9.  * @author cbf4Life cbf4life@126.com
  10.  * I'm glad to share my knowledge with you all.
  11.  */
  12. public abstract class Command {
  13. public abstract String execute(CommandVO vo);
  14. //建立链表
  15. protected final List<? extends CommandName> buildChain(Class<? extends CommandName> abstractClass){
  16. //取出所有的命令名下的子类
  17. List<Class> classes = ClassUtils.getSonClass(abstractClass);
  18. //存放命令的实例,并建立链表关系
  19. List<CommandName> commandNameList = new ArrayList<CommandName>();
  20. for(Class c:classes){
  21. CommandName commandName =null;
  22. try {
  23. //产生实例
  24. commandName = (CommandName)Class.forName(c.getName()).newInstance();
  25. } catch (Exception e){
  26. // TODO 异常处理
  27. }
  28. //建立链表
  29. if(commandNameList.size()>0){
  30. commandNameList.get(commandNameList.size()-1).setNext(commandName);
  31. }
  32. commandNameList.add(commandName);
  33. }
  34. return commandNameList;
  35. }
  36. }