重构手法03、Inline Temp (内联临时变量)
2010-07-27 07:38
323 查看
你有一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构手法。将所有对该变量的引用动作,,替换为对它赋值的那个表达式自身
动机:Inline Temp (内联临时变量)多半是作为Replace Temp with Query (以查询取代临时变量)的一部分使用的,所以真正的动机出现在后者哪。唯一单独使用Inline Temp (内联临时变量)情况是:你发现某个临时变量被赋予某个函数调用的返回值。一般来说,这样的临时变量不会有任何危害,可以放心把它留在那。但如果这个临时变量妨碍了其他的重构手法,例如 Extract Method (提炼函数),就应该将它内联化。
做法:1、检查给临时变量赋值的语句,确保等号右边的表达式没用副作用。
2、如果这个临时变量并未被声明为const,那就将它声明为const,然后编译。这可以检查该临时变量是否真的只是被赋值一次。
3、找到该变量的所有引用点,将它们替换为“为临时变量赋值”的表达式。
4、每次修改后,编译并测试。
5、修改完所有引用点后,删除该临时变量的声明和赋值语句。
6、编译、测试。
double basePrice = anOrder.BasePrice(); return basePrice(>1000); |
return (anOrder.BasePrice() >1000); |
做法:1、检查给临时变量赋值的语句,确保等号右边的表达式没用副作用。
2、如果这个临时变量并未被声明为const,那就将它声明为const,然后编译。这可以检查该临时变量是否真的只是被赋值一次。
3、找到该变量的所有引用点,将它们替换为“为临时变量赋值”的表达式。
4、每次修改后,编译并测试。
5、修改完所有引用点后,删除该临时变量的声明和赋值语句。
6、编译、测试。
相关文章推荐
- 重构改善既有代码设计--重构手法02:Inline Method (内联函数)& 03: Inline Temp(内联临时变量)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构---重构手法-----以查询取代临时变量(Replace Temp with Query)
- 重构手法04:Replace Temp with Query (以查询取代临时变量)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构改善既有代码设计--重构手法04:Replace Temp with Query (以查询取代临时变量)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- java重构学习3:以查询代替临时变量(Replace Temp with Query)