mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 22:41:30 +00:00
refactor code
This commit is contained in:
parent
9071e804c0
commit
f33ca00192
@ -6,14 +6,10 @@ public class AgedBrieItemHandler implements ItemHandler {
|
||||
|
||||
@Override
|
||||
public void updateItem(Item item) {
|
||||
if (item.quality < 50) {
|
||||
incrementQuality(item);
|
||||
}
|
||||
incrementQuality(item,item.quality < 50);
|
||||
decrementSellIn(item);
|
||||
|
||||
if (hasExpired(item) && item.quality < 50) {
|
||||
incrementQuality(item);
|
||||
}
|
||||
incrementQuality(item,item.sellIn < 0 && item.quality < 50);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -5,18 +5,15 @@ import com.gildedrose.Item;
|
||||
public class BackstagePassesItemHandler implements ItemHandler{
|
||||
@Override
|
||||
public void updateItem(Item item) {
|
||||
if (item.quality < 50) {
|
||||
incrementQuality(item);
|
||||
if (item.sellIn < 11 && item.quality < 50) {
|
||||
incrementQuality(item);
|
||||
}
|
||||
if (item.sellIn < 6 && item.quality < 50) {
|
||||
incrementQuality(item);
|
||||
}
|
||||
}
|
||||
incrementQuality(item, item.quality < 50);
|
||||
incrementQuality(item, item.sellIn < 11 && item.quality < 50);
|
||||
incrementQuality(item, item.sellIn < 6 && item.quality < 50);
|
||||
decrementSellIn(item);
|
||||
initQuality(item, item.sellIn < 0);
|
||||
}
|
||||
|
||||
if (hasExpired(item)) {
|
||||
private void initQuality(Item item, boolean condition) {
|
||||
if (condition) {
|
||||
item.quality = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,19 +2,14 @@ package com.gildedrose.business;
|
||||
|
||||
import com.gildedrose.Item;
|
||||
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
public class ConjuredItemHandler implements ItemHandler {
|
||||
|
||||
@Override
|
||||
public void updateItem(Item item) {
|
||||
if (item.quality > 0) {
|
||||
decrementQuality(item);
|
||||
decrementQuality(item);
|
||||
}
|
||||
IntStream.range(0, 2).forEach(i -> decrementQuality(item,item.quality > 0));
|
||||
decrementSellIn(item);
|
||||
|
||||
if (hasExpired(item) && item.quality > 0) {
|
||||
decrementQuality(item);
|
||||
decrementQuality(item);
|
||||
}
|
||||
IntStream.range(0, 2).forEach(i -> decrementQuality(item,item.sellIn < 0 && item.quality > 0));
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,19 +6,19 @@ public interface ItemHandler {
|
||||
|
||||
void updateItem(Item item);
|
||||
|
||||
default void incrementQuality(Item item){
|
||||
item.quality++;
|
||||
default void incrementQuality(Item item, boolean condition){
|
||||
if (condition) {
|
||||
item.quality++;
|
||||
}
|
||||
}
|
||||
|
||||
default void decrementQuality(Item item){
|
||||
item.quality--;
|
||||
default void decrementQuality(Item item, boolean condition){
|
||||
if (condition) {
|
||||
item.quality--;
|
||||
}
|
||||
}
|
||||
|
||||
default void decrementSellIn(Item item){
|
||||
item.sellIn--;
|
||||
}
|
||||
|
||||
default boolean hasExpired(Item item) {
|
||||
return item.sellIn < 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,19 +7,14 @@ import java.util.List;
|
||||
|
||||
public class RegularItemHandler implements ItemHandler {
|
||||
|
||||
private static final List<String> LEGENDARY_ITEMS = Arrays.asList(new String[]{ItemEnum.SULFURAS.getValue()});
|
||||
private static final List<String> LEGENDARY_ITEMS = Arrays.asList(ItemEnum.SULFURAS.getValue());
|
||||
|
||||
@Override
|
||||
public void updateItem(Item item) {
|
||||
if (!LEGENDARY_ITEMS.contains(item.name)) {
|
||||
if (item.quality > 0) {
|
||||
decrementQuality(item);
|
||||
}
|
||||
decrementQuality(item, item.quality > 0);
|
||||
decrementSellIn(item);
|
||||
|
||||
if (hasExpired(item) && item.quality > 0) {
|
||||
decrementQuality(item);
|
||||
}
|
||||
decrementQuality(item,item.sellIn < 0 && item.quality > 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user