conjured item extends standard item

This commit is contained in:
Gabba 2017-12-18 15:08:20 +00:00
parent c4e303ef70
commit 5df478fa29
2 changed files with 15 additions and 25 deletions

View File

@ -1,31 +1,13 @@
package com.gildedrose.item; package com.gildedrose.item;
public class ConjuredItem implements CustomisedItem { public class ConjuredItem extends StandardItem {
private final Item item;
public ConjuredItem(Item item) { public ConjuredItem(Item item) {
this.item = item; super(item);
} }
public void updateState() { @Override
decreaseSellByDayValueByOne(); public int decreasingValueOverZeroDaysToSell() {
if (sellByDayValueIsOverZero()) { return 2;
decreaseQualityBy(2);
} else {
decreaseQualityBy(4);
}
}
private void decreaseSellByDayValueByOne() {
item.sellIn -= 1;
}
private boolean sellByDayValueIsOverZero() {
return item.sellIn > 0;
}
private void decreaseQualityBy(int qualityValue) {
item.quality -= qualityValue;
} }
} }

View File

@ -11,12 +11,16 @@ public class StandardItem implements CustomisedItem {
public void updateState() { public void updateState() {
decreaseSellByDayValueByOne(); decreaseSellByDayValueByOne();
if (sellByDayValueIsOverZero()) { if (sellByDayValueIsOverZero()) {
decreaseQualityBy(1); decreaseQualityBy(decreasingValueOverZeroDaysToSell());
} else { } else {
decreaseQualityBy(2); decreaseQualityBy(decreasingValueForZeroOrLessDaysToSell());
} }
} }
public int decreasingValueOverZeroDaysToSell() {
return 1;
}
private void decreaseSellByDayValueByOne() { private void decreaseSellByDayValueByOne() {
item.sellIn -= 1; item.sellIn -= 1;
} }
@ -28,4 +32,8 @@ public class StandardItem implements CustomisedItem {
private void decreaseQualityBy(int qualityValue) { private void decreaseQualityBy(int qualityValue) {
item.quality -= qualityValue; item.quality -= qualityValue;
} }
private int decreasingValueForZeroOrLessDaysToSell() {
return decreasingValueOverZeroDaysToSell() * 2;
}
} }