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
|
@Override
|
||||||
public void updateItem(Item item) {
|
public void updateItem(Item item) {
|
||||||
if (item.quality < 50) {
|
incrementQuality(item,item.quality < 50);
|
||||||
incrementQuality(item);
|
|
||||||
}
|
|
||||||
decrementSellIn(item);
|
decrementSellIn(item);
|
||||||
|
incrementQuality(item,item.sellIn < 0 && item.quality < 50);
|
||||||
if (hasExpired(item) && item.quality < 50) {
|
|
||||||
incrementQuality(item);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,18 +5,15 @@ import com.gildedrose.Item;
|
|||||||
public class BackstagePassesItemHandler implements ItemHandler{
|
public class BackstagePassesItemHandler implements ItemHandler{
|
||||||
@Override
|
@Override
|
||||||
public void updateItem(Item item) {
|
public void updateItem(Item item) {
|
||||||
if (item.quality < 50) {
|
incrementQuality(item, item.quality < 50);
|
||||||
incrementQuality(item);
|
incrementQuality(item, item.sellIn < 11 && item.quality < 50);
|
||||||
if (item.sellIn < 11 && item.quality < 50) {
|
incrementQuality(item, item.sellIn < 6 && item.quality < 50);
|
||||||
incrementQuality(item);
|
|
||||||
}
|
|
||||||
if (item.sellIn < 6 && item.quality < 50) {
|
|
||||||
incrementQuality(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
decrementSellIn(item);
|
decrementSellIn(item);
|
||||||
|
initQuality(item, item.sellIn < 0);
|
||||||
|
}
|
||||||
|
|
||||||
if (hasExpired(item)) {
|
private void initQuality(Item item, boolean condition) {
|
||||||
|
if (condition) {
|
||||||
item.quality = 0;
|
item.quality = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,19 +2,14 @@ package com.gildedrose.business;
|
|||||||
|
|
||||||
import com.gildedrose.Item;
|
import com.gildedrose.Item;
|
||||||
|
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
|
||||||
public class ConjuredItemHandler implements ItemHandler {
|
public class ConjuredItemHandler implements ItemHandler {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateItem(Item item) {
|
public void updateItem(Item item) {
|
||||||
if (item.quality > 0) {
|
IntStream.range(0, 2).forEach(i -> decrementQuality(item,item.quality > 0));
|
||||||
decrementQuality(item);
|
|
||||||
decrementQuality(item);
|
|
||||||
}
|
|
||||||
decrementSellIn(item);
|
decrementSellIn(item);
|
||||||
|
IntStream.range(0, 2).forEach(i -> decrementQuality(item,item.sellIn < 0 && item.quality > 0));
|
||||||
if (hasExpired(item) && item.quality > 0) {
|
|
||||||
decrementQuality(item);
|
|
||||||
decrementQuality(item);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,19 +6,19 @@ public interface ItemHandler {
|
|||||||
|
|
||||||
void updateItem(Item item);
|
void updateItem(Item item);
|
||||||
|
|
||||||
default void incrementQuality(Item item){
|
default void incrementQuality(Item item, boolean condition){
|
||||||
item.quality++;
|
if (condition) {
|
||||||
|
item.quality++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
default void decrementQuality(Item item){
|
default void decrementQuality(Item item, boolean condition){
|
||||||
item.quality--;
|
if (condition) {
|
||||||
|
item.quality--;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
default void decrementSellIn(Item item){
|
default void decrementSellIn(Item item){
|
||||||
item.sellIn--;
|
item.sellIn--;
|
||||||
}
|
}
|
||||||
|
|
||||||
default boolean hasExpired(Item item) {
|
|
||||||
return item.sellIn < 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,19 +7,14 @@ import java.util.List;
|
|||||||
|
|
||||||
public class RegularItemHandler implements ItemHandler {
|
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
|
@Override
|
||||||
public void updateItem(Item item) {
|
public void updateItem(Item item) {
|
||||||
if (!LEGENDARY_ITEMS.contains(item.name)) {
|
if (!LEGENDARY_ITEMS.contains(item.name)) {
|
||||||
if (item.quality > 0) {
|
decrementQuality(item, item.quality > 0);
|
||||||
decrementQuality(item);
|
|
||||||
}
|
|
||||||
decrementSellIn(item);
|
decrementSellIn(item);
|
||||||
|
decrementQuality(item,item.sellIn < 0 && item.quality > 0);
|
||||||
if (hasExpired(item) && item.quality > 0) {
|
|
||||||
decrementQuality(item);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user