zoukankan      html  css  js  c++  java
  • 重构之重新组织函数(Inline Temp)

    Inline Temp

    概述

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

    动机(Motivation)

    Inline Temp多半是作为Replace Temp with Query的一部分来使用。惟一单独使用Inline Temp的情况是:你发现某个临时变量被赋予某个函数调用的返回值。一般来说,这样的临时变量不会有任何危害,你可以放心地把它留在那儿。但如果这个临时变量妨碍了其它重构手法---例如Extract Method,就应该将它inline化。

    作法(Mechanics)

    1、如果这个临时变量并未被声明为final,那就将它声明为final,然后编译。

    这可以检查该临时变量是否真的只被赋值一次。

    2、找到该临时变量的所有引用点,将它们替换为为临时变量赋值的语名中的等号右侧表达式。

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

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

    public class InlineTemp {

    //before inline-temp
    public double GetUserSalary(String name)
    {
    double salary = userSalary(name);
    return salary ;
    }


    //after inline-temp
    public double userSalaryAdvanced(String name)
    {
    return userSalary(name);
    }


    public double userSalary(String name){

    if("王有财".equals(name)){
    return 10000.0;
    }

    return 0;
    }
    }
  • 相关阅读:
    win7下安装IIS
    C#在处理多线程更新到UI控件的多种方法
    更新DataGridVeiw中的数据到后台数据库中
    ArcGIS Engine App update
    C#中提供的精准测试程序运行时间的类Stopwatch
    ArcMap10 生成随机点
    HDU 2111 Saving HDU
    HDU 1213 How Many Tables
    HDU 2521 反素数
    HDU 1995 汉诺塔V
  • 原文地址:https://www.cnblogs.com/newbee0101/p/11970328.html
Copyright © 2011-2022 走看看