GildedRose-Refactoring-Kata/Java/src/main/java/com/gildedrose/GildedRose.java
2020-08-13 17:50:04 +08:00

79 lines
1.3 KiB
Java

package com.gildedrose;
class GildedRose {
Item[] items;
public GildedRose(Item[] items) {
this.items = items;
}
public void updateQuality() {
for (Item item : items) {
updateItem(item);
}
}
private void updateItem(Item item) {
if (item.name.equals("Sulfuras, Hand of Ragnaros")) {
return;
}
if (item.name.equals("Aged Brie")) {
updateAgedBrie(item);
} else if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
updateBackstagePasses(item);
} else {
updateNormal(item);
}
}
private void updateBackstagePasses(Item item) {
item.sellIn = item.sellIn - 1;
increaseQuality(item);
if (item.sellIn < 10) {
increaseQuality(item);
}
if (item.sellIn < 5) {
increaseQuality(item);
}
if (item.sellIn < 0) {
item.quality = item.quality - item.quality;
}
}
private void updateNormal(Item item) {
item.sellIn = item.sellIn - 1;
decreaseQuality(item);
if (item.sellIn < 0) {
decreaseQuality(item);
}
}
private void updateAgedBrie(Item item) {
item.sellIn = item.sellIn - 1;
increaseQuality(item);
if (item.sellIn < 0) {
increaseQuality(item);
}
}
public void decreaseQuality(Item item) {
if (item.quality > 0) {
item.quality = item.quality - 1;
}
}
public void increaseQuality(Item item) {
if (item.quality < 50) {
item.quality = item.quality + 1;
}
}
}