mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 22:41:30 +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 {
|
||||
|
||||
private static final int MAX_ALLOWED_QUALITY = 50;
|
||||
|
||||
private static final int QUALITY_TO_ADD = 1;
|
||||
|
||||
@Override
|
||||
public void updateQuality(Item item) {
|
||||
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY);
|
||||
|
||||
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY, QUALITY_TO_ADD);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateQualityForExpiredItem(Item 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_MIN_THRESHOLD_DAY = 6;
|
||||
private static final int ZERO = 0;
|
||||
private static final int DEFAULT_QUALITY_TO_ADD = 1;
|
||||
|
||||
@Override
|
||||
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)) {
|
||||
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY);
|
||||
qualityToAdd++;
|
||||
}
|
||||
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
|
||||
public void updateQualityForExpiredItem(Item item) {
|
||||
|
||||
@ -12,9 +12,9 @@ public interface Goods {
|
||||
|
||||
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)) {
|
||||
item.quality++;
|
||||
item.quality = Math.min(limit, item.quality + qualityToAdd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user