复建学习-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;
}