重新组织函数-Inline Temp(内联临时变量)

2019-12-18  本文已影响0人  瑾然有昫

有一个临时变量, 只被一个简单表达式赋值一次, 而他妨碍了其他重构手法.将所有该变量的引用动作,替换为对它赋值的那个变量本身

示例:

修改前:

$basePrice = anorder.basePrice();
return ($basePrice > 1000);

修改后:

return (anOrder.basePrice() > 1000);

动机

内联临时变量多半是作为Replace Temp With Query的一部分使用,所有真正的动机出现在后者那儿.唯一单独使用Inline Temp的情况是:某个临时变量被赋予某个函数调动的返回值.一般来说这样的临时变量不会有任何危害,可以放心的把它留在哪儿.但是如果这个临时变量妨碍了其他的重构手法.例如Extract Method, 你就应该将它内联化.

做法

  1. 监察临时变量赋值的语句, 确保等号右边的表达式没有副作用
  2. 检查该临时变量是否真的只被赋值一次
  3. 修改完所有的引用点后, 删除临时变量的声明和赋值语句
上一篇 下一篇

猜你喜欢

热点阅读