美文网首页
重构读书笔记-10_2-Add_Parameter+10_3-R

重构读书笔记-10_2-Add_Parameter+10_3-R

作者: MR_Model | 来源:发表于2019-07-17 09:36 被阅读0次

    重构第十章

    2.Add Parameter(添加参数)

    某个函数需要从调用端获得更多信息,为此函数添加一个对象参数,让该对象带进函数所需信息。

    Example:

    double getIncome(int CustomerNum) {
        return CustomerNum * profit
    }
    

    Analyse:

    当profit的值跟随不同种类的顾客变化的时候,可能需要传入顾客的种类型别码
    

    End

    double getIncome(int CustomerNum, CustomerType type) {
        switch (type) {
            case NEW_CUSTOMER : return CustomerNum * 0.98;
            case OLD_CUSTOMER : return CustomerNum * 0.7;
            ...
        }
    }
    

    Conclusion:

    Add Parameter(添加参数)是跟随着业务需求经常使用的重构方法。但是,它不一定是最适合的方法。
    在使用Add Parameter(添加参数)时,你必须确定新参数是否可以通过之前的参数进行获得;获得的参数在程序中究竟有何作用;这个函数是否应该属于拥有该信息的那个对象所有等等问题。
    示例中的问题,其实将getIncome归入Cusomer class也可以,使用多态的方法,返回新老顾客利润的不同。

    注意

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

    3.Remove Parameter(移除参数)

    函数本体不再需要某个参数,将该参数去除。

    Conclusion:

    Remove Parameter(移除参数)和Add Parameter(添加参数)是一个相反操作的重构方法,如果函数移动到相应的class下,对于参数不再需要,可以考虑移除掉多余的参数。

    注意

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

    相关文章

      网友评论

          本文标题:重构读书笔记-10_2-Add_Parameter+10_3-R

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