mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-04 09:11:39 +00:00
refactor: remove mutation methods now and cut-up the switch cases
This commit is contained in:
parent
541c817175
commit
7662217d87
@ -27,70 +27,53 @@ public class Item {
|
|||||||
|
|
||||||
public void updateItem() {
|
public void updateItem() {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case AgedBrie -> {
|
case AgedBrie -> updateAgedBrieItem();
|
||||||
|
case BackstagePass -> updateBackstagePassItem();
|
||||||
if (quality < 50) {
|
|
||||||
addOneToQuality();
|
|
||||||
}
|
|
||||||
|
|
||||||
deductSellIn();
|
|
||||||
|
|
||||||
if (sellIn < 0 && quality < 50) {
|
|
||||||
addOneToQuality();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
case BackstagePass -> {
|
|
||||||
|
|
||||||
if (quality < 50) {
|
|
||||||
addOneToQuality();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sellIn < 11 && quality < 50) {
|
|
||||||
addOneToQuality();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sellIn < 6 && quality < 50) {
|
|
||||||
addOneToQuality();
|
|
||||||
}
|
|
||||||
deductSellIn();
|
|
||||||
|
|
||||||
|
|
||||||
if (sellIn < 0) {
|
|
||||||
quality = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
case Sulfuras -> {}
|
case Sulfuras -> {}
|
||||||
|
case Unknown -> updateUnknownItem();
|
||||||
case Unknown -> {
|
|
||||||
deductSellIn();
|
|
||||||
|
|
||||||
if (quality > 0) {
|
|
||||||
deductOneFromQuality();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sellIn < 0 && quality > 0) {
|
|
||||||
deductOneFromQuality();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setQualityToZero() {
|
private void updateUnknownItem() {
|
||||||
quality = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void deductSellIn() {
|
|
||||||
sellIn--;
|
sellIn--;
|
||||||
}
|
|
||||||
|
|
||||||
private void addOneToQuality() {
|
if (quality > 0) {
|
||||||
quality++;
|
quality--;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deductOneFromQuality() {
|
if (sellIn < 0 && quality > 0) {
|
||||||
quality--;
|
quality--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void updateBackstagePassItem() {
|
||||||
|
if (quality < 50) {
|
||||||
|
quality++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sellIn < 11 && quality < 50) {
|
||||||
|
quality++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sellIn < 6 && quality < 50) {
|
||||||
|
quality++;
|
||||||
|
}
|
||||||
|
|
||||||
|
sellIn--;
|
||||||
|
|
||||||
|
if (sellIn < 0) {
|
||||||
|
quality = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void updateAgedBrieItem() {
|
||||||
|
if (quality < 50) {
|
||||||
|
quality++;
|
||||||
|
}
|
||||||
|
|
||||||
|
sellIn--;
|
||||||
|
|
||||||
|
if (sellIn < 0 && quality < 50) {
|
||||||
|
quality++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user