我目前有很长的if语句:
if (somesTring != null && !"".equals(somestring)
SomeClass.doSomething();
else if (somesTring != null && !"".equals(somestring)
SomeClass.doAnother();
...
else
SomeClass.giveUp();
Run Code Online (Sandbox Code Playgroud)
我认为当相关项目位于决策树的底部时,执行效果会很差。我正在考虑switch语句,据我的同事所说,这是更快的。可悲的是,比较是使用字符串执行的,switch语句不支持该字符串。也许我可以获取所涉及字符串的哈希码,并将其用于switch语句。
我也在考虑一个包含每个字符串的哈希图,并在containsKey方法的帮助下做出决定。但是,这涉及到必须分割一个包含许多静态方法的类,并使这些方法中的每一个都成为某种程度上可执行的对象。通过这样做,我可以处理非常大的“ if”语句。
关于执行时间,良好实践和可维护性,上述哪种方法更有意义?欢迎其他建议:)
使用命令模式。您可以完全摆脱if语句
这是类似的问题
通过使用命令,
执行时间-您可以验证。不要以为它会有很大的不同。
好的做法-是的
可维护性-是的,已经建立了一种模式。