重新组织函数 - Replace Temp with Query

作者: scottlin | 来源:发表于2017-07-08 16:00 被阅读0次

    简述

    你的程序以一个临时变量保存某一表达式的运算结果,将这个表达式提炼到一个独立函数中。

    double basePrice = _quantity * _itemPrice;
    if (basePrice > 1000)
        return basePrice * 0.95 ;
    else 
        return basePrice * 0.98 ;
    

    改为

    if (basePrice() > 1000)
        return basePrice() * 0.95 ;
    else 
        return basePrice() * 0.98 ;
    
    double basePrice() {
    double basePrice = _quantity * _itemPrice;
    }
    

    动机

    • 去掉临时变量,作为一个独立函数,能让类中函数都能使用这个函数,会带来极大的好处
    • 往往是运用Extract Method之前必不可少的步骤

    做法

    • 找出只被赋值一次的临时变量,如果赋值多次考虑Split Temporary Varaiable分割成多个变量
    • 临时变量右侧的表达式提炼到一个独立函数中,先声明private,如果提炼的函数修改对象内容,就要对它进行Separate Query from Modifler
    • 编译测试
    • 在该临时变量上实施Inline Temp

    相关文章

      网友评论

        本文标题:重新组织函数 - Replace Temp with Query

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