[refactoring] : BT - Senior Java Developer

This commit is contained in:
FlorinPintaPPF 2022-11-16 14:21:32 -08:00
parent ac8fce7557
commit 592a15d6de
4 changed files with 84 additions and 0 deletions

View File

@ -0,0 +1,16 @@
package com.gildedrose;
class GildedRoseAbstract {
protected Item[] itemsList;
protected final static AGED_BRIE = "Aged Brie";
protected final static BACKSTAGE_PASSES = "Backstage passes to a TAFKAL80ETC concert";
protected final static SULFURAS = "Sulfuras, Hand of Ragnaros";
public GildedRoseAbstract(Item[] itemsList) {
this.itemsList = itemsList;
}
public abstract void updateQuality();
}

View File

@ -0,0 +1,26 @@
package com.gildedrose;
class GildedRoseAgedBrie extends GildedRoseAbstract {
public GildedRoseAgedBrie(Item[] itemsList) {
this.super(itemsList);
}
public void updateQuality() {
for (Item itemValue : itemsList) {
if (!itemValue.name.equals(AGED_BRIE)
&& !itemValue.name.equals(BACKSTAGE_PASSES)
&& itemValue.quality > 0
&& !itemValue.name.equals(SULFURAS)) {
itemValue.quality --;
} else if (itemValue.quality < 50) {
itemValue.quality ++;
if (itemValue.name.equals(BACKSTAGE_PASSES)
&& (itemValue.sellIn < 11 || itemValue.sellIn < 6)
&& itemValue.quality < 50) {
itemValue.quality ++;
}
}
}
}
}

View File

@ -0,0 +1,26 @@
package com.gildedrose;
class GildedRoseNotAgedBrieNotSulfuras extends GildedRoseAbstract {
public GildedRoseNotAgedBrieNotSulfuras(Item[] itemsList) {
this.super(itemsList);
}
public void updateQuality() {
for (Item itemValue : itemsList) {
if (itemValue.sellIn < 0) {
if (!itemValue.name.equals(AGED_BRIE)) {
if (!itemValue.name.equals(BACKSTAGE_PASSES)
&& (itemValue.quality > 0
&& !itemValue.name.equals(SULFURAS))) {
itemValue.quality --;
} else {
itemValue.quality -= itemValue.quality;
}
} else if (itemValue.quality < 50) {
itemValue.quality ++;
}
}
}
}
}

View File

@ -0,0 +1,16 @@
package com.gildedrose;
class GildedRoseSulfuras extends GildedRoseAbstract {
public GildedRoseSulfuras(Item[] itemsList) {
this.super(itemsList);
}
public void updateQuality() {
for (Item itemValue : itemsList) {
if (!itemValue.name.equals(SULFURAS)) {
itemValue.sellIn --;
}
}
}
}