abstract class implements methods which are not overridden

This commit is contained in:
Gabba 2018-01-16 10:34:38 +00:00
parent 77e9669f6e
commit cda1b03183
7 changed files with 21 additions and 67 deletions

View File

@ -1,10 +1,10 @@
package com.gildedrose.item;
public class AgedBrie extends CustomisedItem {
class AgedBrie extends CustomisedItem {
private final Item item;
public AgedBrie(Item item) {
AgedBrie(Item item) {
this.item = item;
}
@ -17,14 +17,4 @@ public class AgedBrie extends CustomisedItem {
int updatedItemQuality() {
return item.quality += 1;
}
@Override
protected boolean hasReachedHighestQualityValue() {
return item.quality > QualityValues.highestValuePossible(item);
}
@Override
protected boolean hasReachedLowestQualityValue() {
return item.quality < QualityValues.lowestValuePossible();
}
}

View File

@ -1,10 +1,10 @@
package com.gildedrose.item;
public class BackstagePassesItem extends CustomisedItem {
class BackstagePassesItem extends CustomisedItem {
private final Item item;
public BackstagePassesItem(Item item) {
BackstagePassesItem(Item item) {
this.item = item;
}
@ -26,16 +26,6 @@ public class BackstagePassesItem extends CustomisedItem {
}
}
@Override
protected boolean hasReachedHighestQualityValue() {
return item.quality > QualityValues.highestValuePossible(item);
}
@Override
protected boolean hasReachedLowestQualityValue() {
return item.quality < QualityValues.lowestValuePossible();
}
private boolean sellByDayValueIsOver(int dayNumber) {
return item.sellIn > dayNumber;
}

View File

@ -1,23 +1,13 @@
package com.gildedrose.item;
public class ConjuredItem extends CustomisedItem {
class ConjuredItem extends CustomisedItem {
private final Item item;
public ConjuredItem(Item item) {
ConjuredItem(Item item) {
this.item = item;
}
@Override
protected boolean hasReachedHighestQualityValue() {
return item.quality > QualityValues.highestValuePossible(item);
}
@Override
protected boolean hasReachedLowestQualityValue() {
return item.quality < QualityValues.lowestValuePossible();
}
@Override
int updatedItemSellIn() {
return item.sellIn -= 1;

View File

@ -6,9 +6,9 @@ public abstract class CustomisedItem {
item.sellIn = updatedItemSellIn();
item.quality = updatedItemQuality();
if (hasReachedLowestQualityValue()) {
if (hasReachedLowestQualityValue(item)) {
item.quality = QualityValues.lowestValuePossible();
} else if (hasReachedHighestQualityValue()) {
} else if (hasReachedHighestQualityValue(item)) {
item.quality = QualityValues.highestValuePossible(item);
}
}
@ -17,7 +17,11 @@ public abstract class CustomisedItem {
abstract int updatedItemQuality();
protected abstract boolean hasReachedHighestQualityValue();
private boolean hasReachedHighestQualityValue(Item item) {
return item.quality > QualityValues.highestValuePossible(item);
}
protected abstract boolean hasReachedLowestQualityValue();
private boolean hasReachedLowestQualityValue(Item item) {
return item.quality < QualityValues.lowestValuePossible();
}
}

View File

@ -1,12 +1,12 @@
package com.gildedrose.item;
public final class QualityValues {
final class QualityValues {
public static int lowestValuePossible() {
static int lowestValuePossible() {
return 0;
}
public static int highestValuePossible(Item item) {
static int highestValuePossible(Item item) {
if (item.name.equals(CustomisedItemFactory.SULFURAS)) {
return 80;
}

View File

@ -1,10 +1,10 @@
package com.gildedrose.item;
public class StandardItem extends CustomisedItem {
class StandardItem extends CustomisedItem {
private final Item item;
public StandardItem(Item item) {
StandardItem(Item item) {
this.item = item;
}
@ -22,16 +22,6 @@ public class StandardItem extends CustomisedItem {
}
}
@Override
protected boolean hasReachedHighestQualityValue() {
return item.quality > QualityValues.highestValuePossible(item);
}
@Override
protected boolean hasReachedLowestQualityValue() {
return item.quality < QualityValues.lowestValuePossible();
}
private boolean sellByDayValueIsOverZero() {
return item.sellIn > 0;
}

View File

@ -1,10 +1,10 @@
package com.gildedrose.item;
public class Sulfuras extends CustomisedItem {
class Sulfuras extends CustomisedItem {
private final Item item;
public Sulfuras(Item item) {
Sulfuras(Item item) {
this.item = item;
}
@ -17,14 +17,4 @@ public class Sulfuras extends CustomisedItem {
int updatedItemQuality() {
return item.quality;
}
@Override
protected boolean hasReachedHighestQualityValue() {
return item.quality > QualityValues.highestValuePossible(item) ;
}
@Override
protected boolean hasReachedLowestQualityValue() {
return item.quality < QualityValues.lowestValuePossible();
}
}