复建学习-Inline Temp

重构学习-----Inline Temp

     1、概述

      你有一个临时变量,它只被一个简单表达式赋值一次,而它的存在妨碍了其他重构方法。

      2、动机

      Inline Temp多半是作为Replace Temp with Query的一部分来使用。唯一单独使用Inline Temp的情况是:你发现某个临时变量被赋值某个函数调用的返回值。一般来说,这样的临时变量不会有任何伤害,你可以放心地把它留在那儿。但如果这个临时变量妨碍了其他的重构方法,比如:前面的Extract Method,就应该将将它Inline化。

     3、做法

     (1)如果这个临时变量并未被声明为final,那就将它什么味final,然后编译。

        这可以检查该临时变量是否真的只是赋值一次。

      (2)找到该临时变量的所有引用点,将它们替换为临时变量赋值的语句中的等号右侧表达式。

      (3)每次修改后,编译并测试。

      (4)修改完成所有的引用点,删除该临时变量的声明式和赋值语句。

    例子:

    double getUserSalary(String name){

       double salary=userSalary(name);

       return salary*5;

   }

      改为:

     double getUserSalary(String name){

     return userSalary(name)*5;

    }