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