您的位置:首页 > 其它

重构手法03、Inline Temp (内联临时变量)

2010-07-27 07:38 323 查看
你有一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构手法。将所有对该变量的引用动作,,替换为对它赋值的那个表达式自身

double basePrice = anOrder.BasePrice();

return basePrice(>1000);

                

  

return (anOrder.BasePrice() >1000);

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

做法:1、检查给临时变量赋值的语句,确保等号右边的表达式没用副作用。

2、如果这个临时变量并未被声明为const,那就将它声明为const,然后编译。这可以检查该临时变量是否真的只是被赋值一次。

3、找到该变量的所有引用点,将它们替换为“为临时变量赋值”的表达式。

4、每次修改后,编译并测试。

5、修改完所有引用点后,删除该临时变量的声明和赋值语句。

6、编译、测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐