本系列来自《java 重构改善既有代码的设计》一书
如果程序中有某一个临时变量被赋值超过一次,且它既不是循环变量,也不是一个集用临时变量。
这时候我们可以针对每次赋值创建一个独立的、对应的临时变量。
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("周长:" + perimeter);
final double area = height * width;
System.out.println("面积:" + area);
循环变量:会随着循环的每次运行而改变。
集用临时变量:负责将整个函数的运算而构成的某个值收集起来。通常用做累加,字符串接合,写入stream等。
做法:
1、在需要解剖的临时变量的声明式以及第一次被赋值处,修改其名称。(如果是集用临时变量,没必要解剖)。
2、将此临时变量声明为final
3、以该临时变量直到第二次赋值动作为界,修改此前对临时变量的所有引用点,让他们引入新的临时变量。
4、在第二次赋值处,重新声明原先的那个临时变量.......
5、编译、测试。