Java中if语句的详细列表

抱歉,找不到答案,我几乎可以肯定有人提出过这个问题。

我的问题是我正在编写一些系统库来运行嵌入式设备。我有可以通过无线电广播发送到这些设备的命令。这只能通过文本来完成。在系统库中,我有一个线程来处理看起来像这样的命令

if (value.equals("A")) { doCommandA() }

else if (value.equals("B")) { doCommandB() }

else if etc.

问题在于,要执行的命令很多,很快就会变成无法控制的事情。在几个月的时间里,看起来很可怕,调试起来很痛苦,而且难以理解。

回答:

使用命令模式:

public interface Command {

void exec();

}

public class CommandA() implements Command {

void exec() {

// ...

}

}

// etc etc

然后构建一个Map<String,Command>对象并用Command实例填充它:

commandMap.put("A", new CommandA());

commandMap.put("B", new CommandB());

那么你可以将if / else if链替换为:

commandMap.get(value).exec();

编辑

你还可以添加诸如UnknownCommand或的特殊命令NullCommand,但是你需要一个CommandMap处理这些特殊情况的命令,以最大程度地减少客户的检查。

以上是 Java中if语句的详细列表 的全部内容, 来源链接: utcz.com/qa/417401.html

回到顶部