mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-14 22:21:20 +00:00
abstract class implements methods which are not overridden
This commit is contained in:
parent
77e9669f6e
commit
cda1b03183
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user