我的开关中有79个案例.
switch (field) {
case "ALL_STATUS":
allowedAllStatus = allowedValues.split("=");
break;
case "APPLICATION_TYPE":
allowedApplicationType = allowedValues.split("=");
break;
case "CONTACT_LOCATION":
allowedContactLocation = allowedValues.split("=");
break;
...
Run Code Online (Sandbox Code Playgroud)
当我将应用程序运行到sonarqube时,它要求我减少案例数量:
Reduce the number of switch cases from 79 to at most 30
Run Code Online (Sandbox Code Playgroud)
现在,在每种情况下我都需要执行相同的功能allowedValues.split("=").因此,我决定创建一个hashmap并将所有值放在那里,然后根据key字段调用该函数.
现在,我想问一下,按照我重构它的方式来做它是否有效 - 记忆明智还是时间明智?
一个79元素的switch-case语句几乎总是一个坏兆头.它不仅复制了许多类似的代码,而且还很难维护.如果你需要改变它的任何内容,我保证你会因为不同意处理它而生气.
在这种情况下,如果您希望按名称提供并从文件中读取多个String(Array?)属性,则Map是目前最优的解决方案.在这种情况下,没有10字节的内存差异会伤害到你.
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |