mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-16 06:51:27 +00:00
Refactored code- Adapted method to remove redundant method calls for quality update
This commit is contained in:
parent
0b064047da
commit
7ec3761989
@ -5,17 +5,18 @@ import static com.gildedrose.rule.ValidationRule.isExpired;
|
|||||||
public class AgedBrie implements Goods {
|
public class AgedBrie implements Goods {
|
||||||
|
|
||||||
private static final int MAX_ALLOWED_QUALITY = 50;
|
private static final int MAX_ALLOWED_QUALITY = 50;
|
||||||
|
|
||||||
|
private static final int QUALITY_TO_ADD = 1;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateQuality(Item item) {
|
public void updateQuality(Item item) {
|
||||||
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY);
|
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY, QUALITY_TO_ADD);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateQualityForExpiredItem(Item item) {
|
public void updateQualityForExpiredItem(Item item) {
|
||||||
if (isExpired(item)) {
|
if (isExpired(item)) {
|
||||||
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY);
|
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY, QUALITY_TO_ADD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,19 +8,20 @@ public class BackStagePasses implements Goods {
|
|||||||
private static final int SELL_IN_MAX_THRESHOLD_DAY = 11;
|
private static final int SELL_IN_MAX_THRESHOLD_DAY = 11;
|
||||||
private static final int SELL_IN_MIN_THRESHOLD_DAY = 6;
|
private static final int SELL_IN_MIN_THRESHOLD_DAY = 6;
|
||||||
private static final int ZERO = 0;
|
private static final int ZERO = 0;
|
||||||
|
private static final int DEFAULT_QUALITY_TO_ADD = 1;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateQuality(Item item) {
|
public void updateQuality(Item item) {
|
||||||
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY);
|
int qualityToAdd = DEFAULT_QUALITY_TO_ADD;
|
||||||
|
|
||||||
if (isWithInLimit(SELL_IN_MAX_THRESHOLD_DAY, item.sellIn)) {
|
if (isWithInLimit(SELL_IN_MAX_THRESHOLD_DAY, item.sellIn)) {
|
||||||
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY);
|
qualityToAdd++;
|
||||||
}
|
}
|
||||||
if (isWithInLimit(SELL_IN_MIN_THRESHOLD_DAY, item.sellIn)) {
|
if (isWithInLimit(SELL_IN_MIN_THRESHOLD_DAY, item.sellIn)) {
|
||||||
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY);
|
qualityToAdd++;
|
||||||
}
|
}
|
||||||
|
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY, qualityToAdd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateQualityForExpiredItem(Item item) {
|
public void updateQualityForExpiredItem(Item item) {
|
||||||
|
|||||||
@ -12,9 +12,9 @@ public interface Goods {
|
|||||||
|
|
||||||
public void updateQualityForExpiredItem(Item item);
|
public void updateQualityForExpiredItem(Item item);
|
||||||
|
|
||||||
default void addQualityWhenWithInLimit(Item item, int limit) {
|
default void addQualityWhenWithInLimit(Item item, int limit, int qualityToAdd) {
|
||||||
if (isWithInLimit(limit, item.quality)) {
|
if (isWithInLimit(limit, item.quality)) {
|
||||||
item.quality++;
|
item.quality = Math.min(limit, item.quality + qualityToAdd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user