歡迎來到鑲金玫瑰(Gilded Rose)團隊。如你所知,我們是主城(暴風城)中的一個小旅店,店主非常友好,名叫 Allison。我們也售賣最好的物品。不幸的是,物品品質會隨著銷售期限的接近而不斷下降。
我們有一個系統來更新庫存信息。系統是由一個火車王(魔獸世界中導致團滅的豬隊友)Leeroy 所開發的,他已經不在這了。
你的任務是添加新功能,這樣我們就可以售賣新的物品。
先介紹一下我們的系統:
Item
)都具備一個銷售期限(SellIn
),表示我們要在多少天之前把物品賣出去Quality
,表示物品的品質UpdateQuality
)很簡單吧?這還有些更有意思的:
Quality
永遠不會為負值Quality
永遠不會超過 50
Quality
會以雙倍速度(2
)加速下降Quality
會隨著時間推移而提高(1
)Quality
會隨著時間推移而提高
Quality
每天提高 2
Quality
每天提高 3
Quality
就會降為 0
Quality
我們最近簽約了一個召喚物品供應商。這需要對我們的系統進行升級:
Quality
下降速度比正常物品快一倍只要系統還能正常工作,請隨意對 UpdateQuality() 函數進行修改和添加新代碼。然而,不要修改 Item
類或其屬性,因為那屬於角落裡的地精,他會非常憤怒地爆你頭,因為他不相信代碼共享所有制(如果你願意,你可以將 UpdateQuality
方法和 Items
屬性改為靜態的,我們會掩護你的)。
再次澄清,每種物品的品質不會超過 50
,然而 薩弗拉斯—炎魔拉格納羅斯之手(Sulfuras)是一個傳奇物品,因此它的品質是80且永遠不變。
題目翻譯,部分參考了 Repo 的譯文。
大家請挑自己熟悉的語言來練習。
https://github.com/emilybache/GildedRose-Refactoring-Kata
修改歷程參考(請由上到下查看):https://github.com/yaosiang/GildedRose-Refactoring-Kata/compare/6a12fad…main