general refactoring | introduce upgradeBy

This commit is contained in:
Kirti Deshmukh 2023-02-03 08:12:10 +05:30
parent 4b3e84facb
commit 3e58c3d0d5
2 changed files with 20 additions and 6 deletions

View File

@ -0,0 +1,6 @@
package com.gildedrose;
public class Constants {
public static final int MAX_QUALITY = 50;
public static final int MIN_QUALITY = 0;
}

View File

@ -1,6 +1,10 @@
package com.gildedrose;
import static com.gildedrose.Constants.MAX_QUALITY;
import static com.gildedrose.Constants.MIN_QUALITY;
class GildedRose {
Item[] items;
public GildedRose(Item[] items) {
@ -25,10 +29,6 @@ class GildedRose {
item.sellIn = item.sellIn - 1;
}
private Integer degradeQualityBy(int currentQuality, int degradeBy) {
return Math.max(currentQuality - degradeBy, 0);
}
private void updateQuality(Item item) {
if (!item.name.equals("Aged Brie")
&& !item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
@ -44,13 +44,13 @@ class GildedRose {
if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
if (item.sellIn < 11) {
if (item.quality < 50) {
item.quality = item.quality + 1;
item.quality = upgradeQualityBy(item.quality, 1);
}
}
if (item.sellIn < 6) {
if (item.quality < 50) {
item.quality = item.quality + 1;
item.quality = upgradeQualityBy(item.quality, 1);
}
}
}
@ -79,4 +79,12 @@ class GildedRose {
}
}
}
private Integer degradeQualityBy(int currentQuality, int degradeBy) {
return Math.max(currentQuality - degradeBy, MIN_QUALITY);
}
private Integer upgradeQualityBy(int currentQuality, int upgradeBy) {
return Math.min(currentQuality + upgradeBy, MAX_QUALITY);
}
}