将 Temp 替换为查询
现在,人们普遍推荐使用“用查询替换临时”重构方法,但似乎效率非常低,收益很小。
来自Martin Fowler网站的方法给出了以下示例:
将表达式提取到方法中。将 temp 的所有引用替换为表达式。然后,可以在其他方法中使用新方法。
double basePrice = _quantity * _itemPrice;
if (basePrice > 1000)
return basePrice * 0.95;
else
return basePrice * 0.98;
成为
if (basePrice() > 1000)
return basePrice() * 0.95;
else
return basePrice() * 0.98;
double basePrice() {
return _quantity * _itemPrice;
}
为什么这是一个好主意?当然,这意味着计算是不必要的重复,并且您有调用函数的开销。我知道CPU周期很便宜,但像这样扔掉它们似乎很粗心?
我错过了什么吗?