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

 

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

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、编译、测试。

转载于:https://www.cnblogs.com/matchcolor/archive/2010/07/27/1785701.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值