Item is passed in CustomisedItem contructor

This commit is contained in:
Gabba 2018-01-16 10:44:34 +00:00
parent cda1b03183
commit 35a0abea18
7 changed files with 17 additions and 6 deletions

View File

@ -15,7 +15,7 @@ class GildedRose {
public void updateQuality() { public void updateQuality() {
for (Item item : items) { for (Item item : items) {
itemFactory.customiseItem(item).updateState(item); itemFactory.customiseItem(item).updateState();
} }
} }
} }

View File

@ -5,6 +5,7 @@ class AgedBrie extends CustomisedItem {
private final Item item; private final Item item;
AgedBrie(Item item) { AgedBrie(Item item) {
super(item);
this.item = item; this.item = item;
} }

View File

@ -5,6 +5,7 @@ class BackstagePassesItem extends CustomisedItem {
private final Item item; private final Item item;
BackstagePassesItem(Item item) { BackstagePassesItem(Item item) {
super(item);
this.item = item; this.item = item;
} }

View File

@ -5,6 +5,7 @@ class ConjuredItem extends CustomisedItem {
private final Item item; private final Item item;
ConjuredItem(Item item) { ConjuredItem(Item item) {
super(item);
this.item = item; this.item = item;
} }

View File

@ -2,13 +2,19 @@ package com.gildedrose.item;
public abstract class CustomisedItem { public abstract class CustomisedItem {
public final void updateState(Item item) { private final Item item;
CustomisedItem(Item item) {
this.item = item;
}
public final void updateState() {
item.sellIn = updatedItemSellIn(); item.sellIn = updatedItemSellIn();
item.quality = updatedItemQuality(); item.quality = updatedItemQuality();
if (hasReachedLowestQualityValue(item)) { if (hasReachedLowestQualityValue()) {
item.quality = QualityValues.lowestValuePossible(); item.quality = QualityValues.lowestValuePossible();
} else if (hasReachedHighestQualityValue(item)) { } else if (hasReachedHighestQualityValue()) {
item.quality = QualityValues.highestValuePossible(item); item.quality = QualityValues.highestValuePossible(item);
} }
} }
@ -17,11 +23,11 @@ public abstract class CustomisedItem {
abstract int updatedItemQuality(); abstract int updatedItemQuality();
private boolean hasReachedHighestQualityValue(Item item) { private boolean hasReachedHighestQualityValue() {
return item.quality > QualityValues.highestValuePossible(item); return item.quality > QualityValues.highestValuePossible(item);
} }
private boolean hasReachedLowestQualityValue(Item item) { private boolean hasReachedLowestQualityValue() {
return item.quality < QualityValues.lowestValuePossible(); return item.quality < QualityValues.lowestValuePossible();
} }
} }

View File

@ -5,6 +5,7 @@ class StandardItem extends CustomisedItem {
private final Item item; private final Item item;
StandardItem(Item item) { StandardItem(Item item) {
super(item);
this.item = item; this.item = item;
} }

View File

@ -5,6 +5,7 @@ class Sulfuras extends CustomisedItem {
private final Item item; private final Item item;
Sulfuras(Item item) { Sulfuras(Item item) {
super(item);
this.item = item; this.item = item;
} }