我已经创建了一个 shell(比如命令提示符)。我正在接受用户输入并比较 if 条件下的字符串以执行输入的命令。因此,我的 java 代码中有很多 if 语句,这并不理想。我正在寻找一种更好的方法来实现这部分代码。有没有可能把我所有的命令都存起来,然后遍历数组,看看需要执行哪些命令?有什么好的建议吗?
if (cmd[0].equals("pwd")) {`
command = new Pwd();
invoker = new Invoker(command);
invoker.action();
}
else if (cmd[0].equals("ls")) {
command = new Ls();
invoker = new Invoker(command);
invoker.action(); //this executes the command
}
……等等
最佳答案
你可以试试 HashMap<String, Command>()
.
Map<String, Command> commandMap = new HashMap<String, Command>();
commandMap.put("pwd", new Pwd());
commandMap.put("ls", new Ls());
if(commandMap.containsKey(cmd[0])) {
new Invoker(commandMap.get(cmd[0])).action();
}
关于java - 命令设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34386727/