代码重构之以查询取代临时变量

意图

- 使得同一个类中的所有函数都可以获得这份信息,能够为这个类编写更清晰的代码

示例

/**
 * 以查询取代临时变量之前
 * Created by luo on 2017/4/19.
 */
public class ReplaceTempWithQueryBefore {
    private double _quantity;
    private double _itemPrice;

    public double test() {
        double basePrice = _quantity * _itemPrice;
        if (basePrice > 1000) {
            return basePrice * 0.95;
        } else {
            return basePrice * 0.98;
        }
    }
}
/**
 * 以查询取代临时变量之后
 * Created by luo on 2017/4/19.
 */
public class ReplaceTempWithQueryAfter {
    private double _quantity;
    private double _itemPrice;

    public double test() {
        if (basePrice() > 1000) {
            return basePrice() * 0.95;
        } else {
            return basePrice() * 0.98;
        }
    }

    private double basePrice() {
        return _quantity * _itemPrice;
    }

}
时间: 2024-10-14 12:07:32

代码重构之以查询取代临时变量的相关文章

以查询取代临时变量

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42386305         在上一篇文章中介绍了" 内联临时变量".本文将介绍"以查询取代临时变量"这种重构手法.         下面让我们来学习这种重构手法吧. 开门见山         发现:你的程序以一个临时变量保存某一表达式的运算结果. 解决:将这个表达式提炼到一个独立函数中.将这个临时变量的所有引用点替换为对新函

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

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

构手法之Replace Temp with Query(以查询取代临时变量)

返回总目录 6.4Replace Temp with Query(以查询取代临时变量) 概要 你的程序以一个临时变量保存某一表达式的运算结果. 将这个表达式提炼到一个独立函数中.将这个临时变量的所有引用点替换为对函数的调用.此后,新函数就可以被其他函数使用. 动机 临时变量的问题在于:只在当前函数可 评 http://p.baidu.com/itopic/main/qlog?qid=ec4e6162633966633539313100&type=questionloghttp://p.baidu

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

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

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

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

代码重构技巧方法

我是一个程序员.相信很多的程序员也有过同样的的经历,在公司一边骂别人的代码烂,一边写着比别人更烂的代码. 代码并不是一开始就变坏,代码变坏有以下可能 1.需求变更 2.维护代码的人的水平参差不齐 3.维护人员流动大 4.开发周期短,交付时间紧急 5.个人习惯 6.管理者对代码的要求 以上都是有可能使代码变坏的可能,那么如何写出好的代码?除了个人编程能力外还需要有一定的技巧,以下就是总结前人的经验 得来的,需要在编程中养成一种好习惯,让写好代码成为一种习惯吧!!!!! 1.使用卫语句 在什么情况下

代码重构(一):函数重构规则

重构是项目做到 一定程度后必然要做的事情.代码重构,可以改善既有的代码设计,增强既有工程的可扩充.可维护性.随着项目需求的不断迭代,需求的不断更新,我们在项目中 所写的代码也在时时刻刻的在变化之中.在一次新的需求中,你添加了某些功能模块,但这些功能模块有可能在下一次需求中不在适用.或者你因为需求迭代与变 更,使你原有的方法或者类变得臃肿,以及各个模块或者层次之间耦合度增加.此时,你要考虑重构了. 重构,在<重构,改善既有代码的设计>这本经典的书中给出了定义,大概就是:在不改变代码对外的表现的情

重构改善既有代码设计--重构手法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(

代码重构之内联临时变量

意图 - 有一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构手法 示例 /** * 内联临时变量之前 * Created by luo on 2017/4/19. */ public class InlineTempBefore { Order anOrder = new Order(); public boolean test() { double basePrice = anOrder.basePrice(); return basePrice > 10; } } /** * 内