mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-16 06:51:27 +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() {
|
||||
for (Item item : items) {
|
||||
new StrorageItem(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--;
|
||||
new StrorageItem(item).dailyUpdateItem(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,4 +6,65 @@ public class StrorageItem {
|
||||
public StrorageItem(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