mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-18 07:51:29 +00:00
move methods to StorageItem
moving the methods from GildedRose to Storage item for a polimorfizm solution
This commit is contained in:
parent
4e692bf70e
commit
fa31f828a1
@ -9,69 +9,7 @@ class GildedRose {
|
|||||||
|
|
||||||
public void updateStorage() {
|
public void updateStorage() {
|
||||||
for (Item item : items) {
|
for (Item item : items) {
|
||||||
new StrorageItem(item);
|
new StrorageItem(item).dailyUpdateItem(item);
|
||||||
updateItem(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void updateItem(Item item) {
|
|
||||||
updateQuality(item);
|
|
||||||
updateSelling(item);
|
|
||||||
if (isExpired(item)) {
|
|
||||||
updateExpired(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void updateQuality(Item item) {
|
|
||||||
if (item.name.equals("Aged Brie")) {
|
|
||||||
increaseQuality(item);
|
|
||||||
} else if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
|
||||||
increaseQuality(item);
|
|
||||||
|
|
||||||
if (item.sellIn < 11) {
|
|
||||||
increaseQuality(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.sellIn < 6) {
|
|
||||||
increaseQuality(item);
|
|
||||||
}
|
|
||||||
} else if (item.name.equals("Sulfuras, Hand of Ragnaros")) {
|
|
||||||
return;
|
|
||||||
} else decreaseQuality(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void updateSelling(Item item) {
|
|
||||||
if (item.name.equals("Sulfuras, Hand of Ragnaros")) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
item.sellIn--;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean isExpired(Item item) {
|
|
||||||
return item.sellIn < 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void updateExpired(Item item) {
|
|
||||||
if (item.name.equals("Aged Brie")) {
|
|
||||||
increaseQuality(item);
|
|
||||||
} else if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
|
||||||
item.quality = 0;
|
|
||||||
} else if (item.name.equals("Sulfuras, Hand of Ragnaros")) {
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
decreaseQuality(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void increaseQuality(Item item) {
|
|
||||||
if (item.quality < 50) {
|
|
||||||
item.quality++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void decreaseQuality(Item item) {
|
|
||||||
if (item.quality > 0) {
|
|
||||||
item.quality--;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,4 +6,65 @@ public class StrorageItem {
|
|||||||
public StrorageItem(Item item) {
|
public StrorageItem(Item item) {
|
||||||
this.item = item;
|
this.item = item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected static void decreaseQuality(Item item, StrorageItem strorageItem) {
|
||||||
|
if (item.quality > 0) {
|
||||||
|
item.quality--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void increaseQuality(Item item, StrorageItem strorageItem) {
|
||||||
|
if (item.quality < 50) {
|
||||||
|
item.quality++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void updateQuality(Item item, StrorageItem strorageItem) {
|
||||||
|
if (item.name.equals("Aged Brie")) {
|
||||||
|
increaseQuality(item,strorageItem);
|
||||||
|
} else if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
||||||
|
increaseQuality(item, strorageItem);
|
||||||
|
|
||||||
|
if (item.sellIn < 11) {
|
||||||
|
increaseQuality(item, strorageItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.sellIn < 6) {
|
||||||
|
increaseQuality(item, strorageItem);
|
||||||
|
}
|
||||||
|
} else if (item.name.equals("Sulfuras, Hand of Ragnaros")) {
|
||||||
|
return;
|
||||||
|
} else decreaseQuality(item,strorageItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void updateSelling(Item item, StrorageItem strorageItem) {
|
||||||
|
if (item.name.equals("Sulfuras, Hand of Ragnaros")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
item.sellIn--;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static boolean isExpired(Item item, StrorageItem strorageItem) {
|
||||||
|
return item.sellIn < 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void updateExpired(Item item, StrorageItem strorageItem) {
|
||||||
|
if (item.name.equals("Aged Brie")) {
|
||||||
|
increaseQuality(item, strorageItem);
|
||||||
|
} else if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
||||||
|
item.quality = 0;
|
||||||
|
} else if (item.name.equals("Sulfuras, Hand of Ragnaros")) {
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
decreaseQuality(item, strorageItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dailyUpdateItem(Item item) {
|
||||||
|
updateQuality(item, this);
|
||||||
|
updateSelling(item, this);
|
||||||
|
if (isExpired(item, this)) {
|
||||||
|
updateExpired(item, this);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user