mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-04 09:11:39 +00:00
refactor: remove mutation methods now and cut-up the switch cases
This commit is contained in:
parent
541c817175
commit
7662217d87
@ -27,70 +27,53 @@ public class Item {
|
||||
|
||||
public void updateItem() {
|
||||
switch (type) {
|
||||
case AgedBrie -> {
|
||||
|
||||
if (quality < 50) {
|
||||
addOneToQuality();
|
||||
}
|
||||
|
||||
deductSellIn();
|
||||
|
||||
if (sellIn < 0 && quality < 50) {
|
||||
addOneToQuality();
|
||||
}
|
||||
}
|
||||
|
||||
case BackstagePass -> {
|
||||
|
||||
if (quality < 50) {
|
||||
addOneToQuality();
|
||||
}
|
||||
|
||||
if (sellIn < 11 && quality < 50) {
|
||||
addOneToQuality();
|
||||
}
|
||||
|
||||
if (sellIn < 6 && quality < 50) {
|
||||
addOneToQuality();
|
||||
}
|
||||
deductSellIn();
|
||||
|
||||
|
||||
if (sellIn < 0) {
|
||||
quality = 0;
|
||||
}
|
||||
}
|
||||
|
||||
case AgedBrie -> updateAgedBrieItem();
|
||||
case BackstagePass -> updateBackstagePassItem();
|
||||
case Sulfuras -> {}
|
||||
|
||||
case Unknown -> {
|
||||
deductSellIn();
|
||||
|
||||
if (quality > 0) {
|
||||
deductOneFromQuality();
|
||||
}
|
||||
|
||||
if (sellIn < 0 && quality > 0) {
|
||||
deductOneFromQuality();
|
||||
}
|
||||
}
|
||||
case Unknown -> updateUnknownItem();
|
||||
}
|
||||
}
|
||||
|
||||
private void setQualityToZero() {
|
||||
quality = 0;
|
||||
}
|
||||
|
||||
private void deductSellIn() {
|
||||
private void updateUnknownItem() {
|
||||
sellIn--;
|
||||
}
|
||||
|
||||
private void addOneToQuality() {
|
||||
quality++;
|
||||
}
|
||||
if (quality > 0) {
|
||||
quality--;
|
||||
}
|
||||
|
||||
private void deductOneFromQuality() {
|
||||
quality--;
|
||||
if (sellIn < 0 && quality > 0) {
|
||||
quality--;
|
||||
}
|
||||
}
|
||||
private void updateBackstagePassItem() {
|
||||
if (quality < 50) {
|
||||
quality++;
|
||||
}
|
||||
|
||||
if (sellIn < 11 && quality < 50) {
|
||||
quality++;
|
||||
}
|
||||
|
||||
if (sellIn < 6 && quality < 50) {
|
||||
quality++;
|
||||
}
|
||||
|
||||
sellIn--;
|
||||
|
||||
if (sellIn < 0) {
|
||||
quality = 0;
|
||||
}
|
||||
}
|
||||
public void updateAgedBrieItem() {
|
||||
if (quality < 50) {
|
||||
quality++;
|
||||
}
|
||||
|
||||
sellIn--;
|
||||
|
||||
if (sellIn < 0 && quality < 50) {
|
||||
quality++;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
Reference in New Issue
Block a user