動機:臨時變量時臨時的和局部的,把它們替換成方法後,就可以重用了。
關鍵:最常用的的一種情況是:臨時變量只有一次賦值,例如用臨時變量收集“循環計算總和”。一般將新建的方法暫時設爲私有的,並且要確保方法沒有修改任何對象。
示例:
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