Create small functions instead of big ones

This commit is contained in:
brianblessou 2019-05-12 15:43:20 +02:00
parent a273600de7
commit f0ed10d078

View File

@ -2,6 +2,9 @@ package com.gildedrose;
class GildedRose { class GildedRose {
Item[] items; Item[] items;
String SULFURA = "Sulfuras, Hand of Ragnaros";
String AGED_BRIE = "Aged Brie";
String BACKSTAGE = "Backstage passes to a TAFKAL80ETC concert";
public GildedRose(Item[] items) { public GildedRose(Item[] items) {
this.items = items; this.items = items;
@ -33,46 +36,50 @@ class GildedRose {
return condition; return condition;
} }
public void updateQuality() { private void decreaseQualityTwice(Item item) {
String SULFURA = "Sulfuras, Hand of Ragnaros"; decreaseQuality(item);
String AGED_BRIE = "Aged Brie"; decreaseQuality(item);
String BACKSTAGE = "Backstage passes to a TAFKAL80ETC concert";
for (Item item : items) {
if (item.name.equals(SULFURA)) {
continue;
} }
updateNumberOfdayToSellRemaining(item); private void updateAgedBrieQuaility(Item item) {
if (item.name.equals(AGED_BRIE)) {
increaseQuality(item); increaseQuality(item);
} else if (item.name.equals(BACKSTAGE)) { if (itemHasExpired(item)) {
increaseQuality(item); increaseQuality(item);
}
}
private void updateBackstageQuaility(Item item) {
increaseQuality(item);
if (item.sellIn < 10) { if (item.sellIn < 10) {
increaseQuality(item); increaseQuality(item);
} }
if (item.sellIn < 5) { if (item.sellIn < 5) {
increaseQuality(item); increaseQuality(item);
} }
} else {
decreaseQuality(item);
}
if (itemHasExpired(item)) { if (itemHasExpired(item)) {
if (item.name.equals(AGED_BRIE)) {
increaseQuality(item);
} else if (item.name.equals(BACKSTAGE)) {
item.quality -= item.quality; item.quality -= item.quality;
}
}
private void updateQualityItem(Item item) {
if (item.name.equals(AGED_BRIE)) {
updateAgedBrieQuaility(item);
} else if (item.name.equals(BACKSTAGE)) {
updateBackstageQuaility(item);
} else {
if (itemHasExpired(item)) {
decreaseQualityTwice(item);
} else { } else {
decreaseQuality(item); decreaseQuality(item);
} }
}
}
} public void updateQuality() {
for (Item item : items) {
if (item.name.equals(SULFURA)) {continue;}
updateNumberOfdayToSellRemaining(item);
updateQualityItem(item);
} }
} }
} }