太多if-else语句,任何重构方法

dej*_*avu 7 java refactoring

这可以重构吗?或者看起来很好.(变量名称已更改)

if (cmpScope.equals(GLOBAL)) {
            return true;
        } else if ((cmpScope.equals(X) || cmpScope.equals(Y))
                && cid == pid) {
            return true;
        } else if (cmpScope.equals(Z) && cid != pId) {
            return true;
        } else if (cmpScope.equals(V) && cid == pid) {
            return true;
        } else if (cmpScope.equals(Z) && cid == pid && cSubId != pSubId) {
            return true;
        }
        return false;
Run Code Online (Sandbox Code Playgroud)

Mic*_*ers 14

只需将所有表达式与or-operators组合在一起,因为它们都返回true.

return  ((cmpScope.equals(GLOBAL) ||
         ((cmpScope.equals(X) || cmpScope.equals(Y)) && cid == pid) ||
         (cmpScope.equals(Z) && cid != pId) ||
         (cmpScope.equals(V) && cid == pid) ||
         (cmpScope.equals(Z) && cid == pid && cSubId != pSubId));
Run Code Online (Sandbox Code Playgroud)

  • 我不明白为什么会有这么多的赞成.它根本不可读,看起来不像一个干净的代码. (3认同)
  • 在编程中几乎所有东西都是主观的,所以看到替代品是很好的 - 当你有选择时,你会考虑它们并最终变得更好.当你盲目遵循一些规则时,你就没有机会成为更好的开发者. (2认同)