重构笔记——内联临时变量

来源:互联网 发布:酷乐视s3装软件 编辑:程序博客网 时间:2024/05/01 22:46

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42167015


        在上一篇文章中介绍了“ 内联函数“。本文将介绍“内联临时变量”这种重构手法。

        下面让我们一起来学习该重构手法把。(PS:虽然某些重构手法看起很简单,但是和其它重构手法结合起来使用,会产生异曲同工的效果)


开门见山

        发现:你有一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其它的重构手法。

        解决:将所有对该变量的引用动作,替换为对它赋值的那个表达式自身。

//重构前double basePrice = singleOrder.basePrice();return (basePrice > 1000)
//重构后return (singleOrder.basePrice() > 1000)


动机

        内联临时变量多数情况是作为“以查询取代临时变量”(下一篇将介绍)的一部分来进行使用的,而真正的动机是出现在“以查询取代临时变量”中。         唯一单独使用内联临时变量的情况是:你发现某个临时变量被赋予某个函数调用的返回值。一般来说,这样的临时变量是不会造成任何危害的,也可以放心地放在那儿。但是,如果这个临时变量妨碍了其它的重构手法(例如提炼函数),你就应该将其内联化。


做法

(1)检查给临时变量赋值的语句,确保等号右边的表达式没有副作用。
(2)如果这个临时变量并未被声明为final,那就将它声明为final,然后编译。(这可以检查该临时变量是否真的只被赋值一次)
(3)找到该临时变量所有引用点,将它们替换为“为临时变量赋值”的表达式。
(4)每次修改后,编译并测试。
(5)修改完后所有引用点后,删除该临时变量的声明和赋值语句。
(6)编译,测试。


        本文主要介绍了重构手法——内联临时变量,该手法和内联函数类似,处理起来比较简单,其主要是结合其它重构手法一起使用。虽然手法比较简单,但是在某些情况下看起来又不得不使用,因为使用其后会让其它重构方法更加便捷。希望本文对你有所帮助。有问题可以留言,谢谢。(PS:下一篇将介绍重构笔记——以查询取代临时变量)




重构笔记之前文章如下:

       重构笔记——入门篇

       重构笔记——代码的坏味道(上)

       重构笔记——代码的坏味道(下)

       重构笔记——构筑测试体

       重构笔记——提炼函数

       重构笔记——内联函数


4 0
原创粉丝点击