影片出租店是《重構:改善既有**的設計》裡面的第乙個例子。使用了多種重構方法。
影片出租店:計算每一位顧客的消費金額並列印詳單。
操作者告訴程式:顧客租了哪些影片,租期多長,程式便根據租賃時間和影片型別算出費用。影片分為三類:普通片,兒童片和新片。除了計算費用,還要為常客計算積分,積分會根據租片種類是否為新片而有不同。
第1次重構:
修改後的**
qstring customer::statement()
result += "\t" + rental->getmovie()->gettitle() + "\t" + qstring("%1").arg(thisamount) + "\n";
totalamout += thisamount;
}result += "amount owed is " + qstring("%1").arg(totalamout) + "\n";
result += "you earned " + qstring("%1").arg(frequentrenterpoints) + " frequent renter points";
qdebug() << qprintable(result) ;
return result;
}double customer::amountfor(rental *rental)
break;
case movie::new_release:
result += rental->getdaysrented() * 3;
break;
case movie::children:
result += 1.5;
if (rental->getdaysrented() > 3)
break;
}return result;
}
測試結果: 影片出租店 重構方法(1)
影片出租店是 重構 改善既有 的設計 裡面的第乙個例子。使用了多種重構方法。影片出租店 計算每一位顧客的消費金額並列印詳單。操作者告訴程式 顧客租了哪些影片,租期多長,程式便根據租賃時間和影片型別算出費用。影片分為三類 普通片,兒童片和新片。除了計算費用,還要為常客計算積分,積分會根據租片種類是否為...
影片出租店 重構方法(3)
影片出租店是 重構 改善既有 的設計 裡面的第乙個例子。使用了多種重構方法。影片出租店 計算每一位顧客的消費金額並列印詳單。操作者告訴程式 顧客租了哪些影片,租期多長,程式便根據租賃時間和影片型別算出費用。影片分為三類 普通片,兒童片和新片。除了計算費用,還要為常客計算積分,積分會根據租片種類是否為...
影片出租店 重構方法(6)
影片出租店是 重構 改善既有 的設計 裡面的第乙個例子。使用了多種重構方法。影片出租店 計算每一位顧客的消費金額並列印詳單。操作者告訴程式 顧客租了哪些影片,租期多長,程式便根據租賃時間和影片型別算出費用。影片分為三類 普通片,兒童片和新片。除了計算費用,還要為常客計算積分,積分會根據租片種類是否為...