实例: 原函数:
double basePrice = price * num;
if (basePrice > 1000) {
return basePrice * 0.95;
} else {
return basePrice * 0.98;
}
优化后
double basePrice() {
return price * num;
}
if (basePrice() > 1000) {
return basePrice() * 0.95;
} else {
return basePrice() * 0.98;
}
场景: 临时变量的问题在于:他们是局部的,且是暂时的,只在该函数内可见。 更改为查询之后可以被整个类使用。可以方便其他重构手法的使用。
做法:
- 找出只被赋值一次的临时变量
- 将该临时变量声明为final
- 编译 确定该函数仅被赋值一次
- 将赋值过程封装进一个独立函数之中,且声明为私有,日后有需求后可声明为其他
- 编译测试
- 对该临时变量使用inline Temp.