代码重构之内联临时变量

意图

- 有一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构手法

示例

/**
 * 内联临时变量之前
 * Created by luo on 2017/4/19.
 */
public class InlineTempBefore {
    Order anOrder = new Order();

    public boolean test() {
        double basePrice = anOrder.basePrice();
        return basePrice > 10;
    }
}

/**
 * 内联临时变量之后
 * Created by luo on 2017/4/19.
 */
public class InlineTempAfter {
    Order anOrder = new Order();
    private double basePrice;

    public boolean test() {
        return basePrice > anOrder.basePrice();
    }

}
时间: 2024-10-21 18:05:42

代码重构之内联临时变量的相关文章

代码重构之分解临时变量

意图 如果临时变量承担多个责任,它就应该被替换(分解)为多个临时变量,每个变量只承担一个责任 示例 /** * Created by luo on 2017/4/24. */ public class SplitTemporaryVariableBefore { private double _height; private double _width; public void test(){ double temp = 2 * (_height + _width); System.out.pr

代码重构之内联函数

意图 - 内部代码和函数名称同样清晰易读,去除无用的间接层 示例 /** * 内联函数之前 * Created by luo on 2017/4/18. */ public class InlineMethodBefore { private Integer _numberOfLateDeliveries ; int getRating(){ return (moreThanFiveLateDliveries()) ? 2 : 1; } private boolean moreThanFiveL

重构改善既有代码设计--重构手法02:Inline Method (内联函数)& 03: Inline Temp(内联临时变量)

Inline Method (内联函数) 一个函数调用的本体与名称同样清楚易懂.在函数调用点插入函数体,然后移除该函数. int GetRating() { return MoreThanfiveLateDeliverise() ? 2 : 1; } bool MoreThanfiveLateDeliverise() { return _numberOfLateLiveries > 5; } int GetRating() { return _numberOfLateLiveries > 5

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

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42167015         在上一篇文章中介绍了" 内联函数".本文将介绍"内联临时变量"这种重构手法.         下面让我们一起来学习该重构手法把.(PS:虽然某些重构手法看起很简单,但是和其它重构手法结合起来使用,会产生异曲同工的效果) 开门见山         发现:你有一个临时变量,只被一个简单表达式赋

重构笔记——分解临时变量

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42463871         在上一篇文章中介绍了"重构笔记--引入解释性变量".本文将介绍"分解临时变量"这种重构手法.         下面让我们来学习这种重构手法吧. 开门见山         发现:你的程序有某个临时变量被赋值超过一次,它既不是循环变量,也不被用于收集计算结果. 解决:针对每次赋值,创造一个独立.对应的

第2章 重新组织函数(2):内联函数和内联临时变量

2. 内联函数(Inline Method) 2.1 动机 (1)在函数调用点插入函数本体,然后移除该函数. (2)有时遇到某些函数,其内部代码和函数名称同样清晰易读,采用内联函数可以提供代码的执行速度(因为少掉了函数调用的开销) (3)在Replace Method withd Method Object之前,将一些组织不合理的函数内联到一个大型函数,再从中提炼组织合理的小型函数时效果很好. (4)使用太多的间接层时,特别是一部分函数只是对另一个函数的简单委托时,可同去掉一些无用的间接层. 2

代码重构之引入解释性变量

意图 临时变量可以帮助你将表达式分解为比较容易管理的形式 在较长的算法中,可以运用临时变量来解释每一步运算的意义 示例 /** * 引入解释性变量之前 * Created by luo on 2017/4/23. */ public class IntroduceExplainingVariableBefore { private String platform; private String browser; private int resize = 0; public void test()

重构改善既有代码设计--重构手法04:Replace Temp with Query (以查询取代临时变量)

所谓的以查询取代临时变量:就是当你的程序以一个临时变量保存某一个表达式的运算效果.将这个表达式提炼到一个独立函数中.将这个临时变量的所有引用点替换为对新函数的调用.此后,新函数就可以被其他函数调用. 例子如下: double basePrice = _quantity*_itemPrice; if (basePrice > 1000) { return basePrice * 0.95; } else { return basePrice * 0.98; } 重构之后代码: if (BasePr

重构改善既有代码设计--重构手法06:Split Temporary Variable (分解临时变量)

你的程序有某个临时变量被赋值超过一次,它既不是循环变量,也不被用于收集计算结果.针对每次赋值,创造一个独立.对应的临时变量 double temp = 2 * (_height + _width); System.out.println(temp); temp = _height * _width; System.out.println(temp); 重构后: final double perimeter = 2 * (_height + _width); System.out.println(