动机:临时变量时临时的和局部的,把它们替换成方法后,就可以重用了。
关键:最常用的的一种情况是:临时变量只有一次赋值,例如用临时变量收集“循环计算总和”。一般将新建的方法暂时设为私有的,并且要确保方法没有修改任何对象。
示例:
def price
if base_price > 1000
discount_factor = 0.05
else
discount_factor = 0.98
end
base_price * discount_factor
end
private
def base_price
@quantity * @item_price
end
--->
def price
base_price * discount_factor
end
private
def base_price
@quantity * @item_price
end
def discount_factor
base_price > 1000 ? 0.95 : 0.98
end