美文网首页
重构读书笔记-6_5-Split Temporary Varia

重构读书笔记-6_5-Split Temporary Varia

作者: MR_Model | 来源:发表于2019-06-11 08:56 被阅读0次

    重构第六章

    6.Split Temporary Variable(分解临时变量)

    针对每一个赋值,创造一个独立的、对应的临时变量

    你的程序有某个临时变量被赋值超过一次,它既不是循环变量,也不是集用临时变量

    Example:

    double temp = 2 * (_height+ _width);
    System.out.println(temp);
    temp = _height * _width;
    System.out.println(temp);
    

    Analyse:

    归根到底,Split Temporary Variable(分解临时变量)重构代码的原因是为了使临时变量具有单一的职责,在其他人阅读时,能够提供更加好的可读性。
    

    End:

    final double perimeter = 2 * (_height+ _width);
    System.out.println(temp);
    final double area = _height * _width;
    System.out.println(temp);
    

    Conclusion:

    Split Temporary Variable(分解临时变量)可以使得程序中临时变量的值具有单一职责,可是如果代码过长,可能造成临时变量过多的情况,这个时候可以使用Extract Method(提炼函数)或者Replace Temp with Query(查询取代变量)减少临时变量的个数,使得程序结构清楚
    

    理智使用

    在某些函数中,一个临时变量的赋值语句可能有多个,但是其运行时的赋值可能就1个,所以要根据代码对情况进行一定的判断,不能太果断。
    
    如: bool getFile(const string& str){
        bool res = false;
        do {    
            res = isFileExist(str);
            if(res == false) {
                break;          
            }
            res = //处理步骤;
            if(res == false) {
                break;              
            }
        }while(false);          
        return res ;
    }
    
    其中比较典型的是C++中对COM口一些组件的调用,一步步判断结果,这个应该可以算是一种集用临时变量。
    

    注意

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

    相关文章

      网友评论

          本文标题:重构读书笔记-6_5-Split Temporary Varia

          本文链接:https://www.haomeiwen.com/subject/hqfffctx.html