java - 命令设计模式

标签 java arrays

我已经创建了一个 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/

相关文章:

java - 如何使用 Kotlin 构建 cordova 项目

java - 语言之间的串行通信

java - JButton 子类在单击/透明错误之前不显示按钮

php 从数组中删除一项

Excel VBA 中的数组。在某些时候,它会放置 NA 而不是 value

java - 我们如何计算字符串中字符的频率

Java ArrayList拆分每个对象

java - (Java) 卡在一个方法上

java - 在 swt 中显示组合框的结果

php - 用最高分对数组进行排序