1. 程式人生 > >6.4 Replace Temp with Query 以查詢取代臨時變數

6.4 Replace Temp with Query 以查詢取代臨時變數

將表示式提煉到一個獨立方法中,將這個臨時變數的所有引用點替換為對新方法的呼叫

更多精彩

前置條件

  1. 該方法通常是 6.1 Extract Method 提煉方法 的前置條件

動機

  1. 臨時變數只能在所屬方法中使用,它們會促使編寫更長的方法

案例

public double getDiscountPrice() {
	double basePrice = quantity * itemPrice;
	
	if (basePrice > 1000
) { return basePrice * 0.95; } else { return basePrice * 0.98; } }
public double getDiscountPrice() {
	if (getBasePrice() > 1000) {
		return getBasePrice() * 0.95;
	} else {
		return getBasePrice() * 0.98;
	}
}

private double getBasePrice() {
	return quantity * itemPrice;
}