package com.cheng.zenofdesignpatterns.perfectworld.command_chain; import com.cheng.zenofdesignpatterns.perfectworld.command_chain.command.Command; /** * 调用类 */ public class Invoker { // 执行命令 public String exec(String _commandStr) { // 定义返回值 String result = ""; // 首先解析命令 CommandVO vo = new CommandVO(_commandStr); // 检查是否支持支持该命令 if (CommandEnum.getNames().contains(vo.getCommandName())) { // 产生命令对象 String className = CommandEnum.valueOf(vo.getCommandName()).getValue(); Command command; try { command = (Command) Class.forName(className).newInstance(); result = command.execute(vo); } catch (Exception e) { // TODO 异常处理 } } else { result = "无法执行命令,请检查命令格式"; } return result; } public static void main(String[] args) { String cmd = "ls -a"; Invoker invoker = new Invoker(); System.out.println(invoker.exec(cmd)); } }