重构读书笔记-9_4-Remove_Control_Flag

2019-07-11  本文已影响0人  MR_Model

重构第九章

4.Remove Control Flag(移除控制标记)

在一系列布尔表达式中,某个变量带有[控制标记]作用。以break语句或return语句取代控制标记。

Example:

void checkSecurity (string[] people) {
    boolean found = false;
    for(int i =0; i<people.length; i++) {
        if(!found) {
            if(people[i].equals("Don")) {
                sendAlert();
                found = true;
            }
            if(people[i].equal("John")) {
                sendAlert();
                found = true;
            }
        }
    }
}

End:

void checkSecurity (string[] people) {
    for(int i =0; i<people.length; i++) {
        if(people[i].equals("Don")) {
            sendAlert();
            break;
        }
        if(people[i].equal("John")) {
            sendAlert();
            break;
        }
    }
}

Conclusion:

用以判断何时停止条件检查的控制标记,会大大的降低代码的可读性。使用break、continue和return跳出复杂的条件语句,会使得条件语句的真正用途清晰的多。

注意

重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!
上一篇 下一篇

猜你喜欢

热点阅读