From 5df478fa29b1ef9387051f35e21839c61dfae2d9 Mon Sep 17 00:00:00 2001 From: Gabba Date: Mon, 18 Dec 2017 15:08:20 +0000 Subject: [PATCH] conjured item extends standard item --- .../com/gildedrose/item/ConjuredItem.java | 28 ++++--------------- .../com/gildedrose/item/StandardItem.java | 12 ++++++-- 2 files changed, 15 insertions(+), 25 deletions(-) diff --git a/Java/src/main/java/com/gildedrose/item/ConjuredItem.java b/Java/src/main/java/com/gildedrose/item/ConjuredItem.java index 32c59238..4d62df34 100644 --- a/Java/src/main/java/com/gildedrose/item/ConjuredItem.java +++ b/Java/src/main/java/com/gildedrose/item/ConjuredItem.java @@ -1,31 +1,13 @@ package com.gildedrose.item; -public class ConjuredItem implements CustomisedItem { - - private final Item item; +public class ConjuredItem extends StandardItem { public ConjuredItem(Item item) { - this.item = item; + super(item); } - public void updateState() { - decreaseSellByDayValueByOne(); - if (sellByDayValueIsOverZero()) { - 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; + @Override + public int decreasingValueOverZeroDaysToSell() { + return 2; } } diff --git a/Java/src/main/java/com/gildedrose/item/StandardItem.java b/Java/src/main/java/com/gildedrose/item/StandardItem.java index 41bf342f..d5b4aa67 100644 --- a/Java/src/main/java/com/gildedrose/item/StandardItem.java +++ b/Java/src/main/java/com/gildedrose/item/StandardItem.java @@ -11,12 +11,16 @@ public class StandardItem implements CustomisedItem { public void updateState() { decreaseSellByDayValueByOne(); if (sellByDayValueIsOverZero()) { - decreaseQualityBy(1); + decreaseQualityBy(decreasingValueOverZeroDaysToSell()); } else { - decreaseQualityBy(2); + decreaseQualityBy(decreasingValueForZeroOrLessDaysToSell()); } } + public int decreasingValueOverZeroDaysToSell() { + return 1; + } + private void decreaseSellByDayValueByOne() { item.sellIn -= 1; } @@ -28,4 +32,8 @@ public class StandardItem implements CustomisedItem { private void decreaseQualityBy(int qualityValue) { item.quality -= qualityValue; } + + private int decreasingValueForZeroOrLessDaysToSell() { + return decreasingValueOverZeroDaysToSell() * 2; + } }