有一个临时变量, 只被一个简单表达式赋值一次, 而他妨碍了其他重构手法.将所有该变量的引用动作,替换为对它赋值的那个变量本身
示例:
修改前:
$basePrice = anorder.basePrice();
return ($basePrice > 1000);
修改后:
return (anOrder.basePrice() > 1000);
动机
内联临时变量多半是作为Replace Temp With Query的一部分使用,所有真正的动机出现在后者那儿.唯一单独使用Inline Temp的情况是:某个临时变量被赋予某个函数调动的返回值.一般来说这样的临时变量不会有任何危害,可以放心的把它留在哪儿.但是如果这个临时变量妨碍了其他的重构手法.例如Extract Method, 你就应该将它内联化.
做法
- 监察临时变量赋值的语句, 确保等号右边的表达式没有副作用
- 检查该临时变量是否真的只被赋值一次
- 修改完所有的引用点后, 删除临时变量的声明和赋值语句
网友评论