mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 14:31:28 +00:00
feat: conjured-items - Added all the strategies
This commit is contained in:
parent
2dafef1884
commit
5e318b83ec
@ -0,0 +1,14 @@
|
||||
package com.gildedrose;
|
||||
|
||||
public class AgedBrieItemStrategyImpl implements ItemStrategy {
|
||||
@Override
|
||||
public void updateQuality(Item item) {
|
||||
if (item.quality < 50) {
|
||||
item.quality = item.quality + 1;
|
||||
}
|
||||
item.sellIn = item.sellIn - 1;
|
||||
if (item.sellIn < 0) {
|
||||
item.quality = item.quality < 50 ? item.quality + 1 : 50;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
package com.gildedrose;
|
||||
|
||||
public class BackStageItemStrategyImpl implements ItemStrategy {
|
||||
@Override
|
||||
public void updateQuality(Item item) {
|
||||
if (item.quality < 50) {
|
||||
item.quality = item.quality + 1;
|
||||
if (item.sellIn < 11) {
|
||||
if (item.quality < 50) {
|
||||
item.quality = item.quality + 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (item.sellIn < 6) {
|
||||
if (item.quality < 50) {
|
||||
item.quality = item.quality + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
item.sellIn = item.sellIn - 1;
|
||||
|
||||
if (item.sellIn < 0) {
|
||||
item.quality = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
package com.gildedrose;
|
||||
|
||||
public class ConjuredItemStrategyImpl implements ItemStrategy {
|
||||
@Override
|
||||
public void updateQuality(Item item) {
|
||||
item.quality = item.quality > 2 ? item.quality - 2 : 0;
|
||||
item.sellIn = item.sellIn - 1;
|
||||
}
|
||||
}
|
||||
13
Java/src/main/java/com/gildedrose/ItemStrategy.java
Normal file
13
Java/src/main/java/com/gildedrose/ItemStrategy.java
Normal file
@ -0,0 +1,13 @@
|
||||
package com.gildedrose;
|
||||
|
||||
public interface ItemStrategy {
|
||||
default void updateQuality(Item item) {
|
||||
if (item.quality > 0) {
|
||||
item.quality = item.quality - 1;
|
||||
}
|
||||
item.sellIn = item.sellIn - 1;
|
||||
if (item.sellIn < 0 && item.quality > 0) {
|
||||
item.quality = item.quality - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
package com.gildedrose;
|
||||
|
||||
public class SulfurasItemStrategyImpl implements ItemStrategy {
|
||||
@Override
|
||||
public void updateQuality(Item item) {
|
||||
// Quality remains intact. Not for sel!
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user