First refactoring - reduce complexity by introducing submethods

This commit is contained in:
Bart Van der Plancken 2020-02-04 22:24:22 +01:00
parent 74feefb0ce
commit 0d4fc93666

View File

@ -17,12 +17,10 @@ class GildedRose {
if(isLegendaryItem(item)) { if(isLegendaryItem(item)) {
continue; continue;
} }
if (!isEnhancingItem(item)) { if (isEnhancingItem(item)) {
if (item.quality > 0) { enhanceItem(item);
item.quality = item.quality - 1;
}
} else { } else {
changeQualityOfBrieAndBackstagePasses(item); degradeItem(item);
} }
updateSellInValue(item); updateSellInValue(item);
@ -30,19 +28,24 @@ class GildedRose {
if (item.sellIn < 0) { if (item.sellIn < 0) {
if (!item.name.equals("Aged Brie")) { if (!item.name.equals("Aged Brie")) {
if (!item.name.equals(BACKSTAGE_PASSES)) { if (!item.name.equals(BACKSTAGE_PASSES)) {
if (item.quality > 0) { degradeItem(item);
item.quality = item.quality - 1;
}
} else { } else {
item.quality = 0; item.quality = 0;
} }
} else if (item.quality < 50) { } else {
item.quality = item.quality + 1; item.quality = Integer.min(item.quality + 1,50);
} }
} }
} }
} }
/**
* @param item
*/
private void degradeItem(Item item) {
item.quality = Integer.max(0, item.quality - 1);
}
/** /**
* @param item * @param item
* @return * @return
@ -62,7 +65,7 @@ class GildedRose {
/** /**
* @param item * @param item
*/ */
private void changeQualityOfBrieAndBackstagePasses(Item item) { private void enhanceItem(Item item) {
if (item.quality < 50) { if (item.quality < 50) {
item.quality = item.quality + 1; item.quality = item.quality + 1;