重构学习-----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;
? ? }