From 5f51644a8c97250657f5b1b36f4aa8856ea70c6c Mon Sep 17 00:00:00 2001 From: Bjorn Misseghers Date: Tue, 13 Apr 2021 08:47:35 +0200 Subject: [PATCH] Separate sellIn behavior in separate class We extract this behavior in a separate interface so we can implement different implementations of it and test them separately. Default behavior is to decrease the sellIn date every iteration by 1 --- .../behavior/sellin/DefaultSellInBehavior.java | 15 +++++++++++++++ .../behavior/sellin/SellInBehavior.java | 8 ++++++++ 2 files changed, 23 insertions(+) create mode 100644 Java/src/main/java/com/gildedrose/behavior/sellin/DefaultSellInBehavior.java create mode 100644 Java/src/main/java/com/gildedrose/behavior/sellin/SellInBehavior.java diff --git a/Java/src/main/java/com/gildedrose/behavior/sellin/DefaultSellInBehavior.java b/Java/src/main/java/com/gildedrose/behavior/sellin/DefaultSellInBehavior.java new file mode 100644 index 00000000..6f7c9f04 --- /dev/null +++ b/Java/src/main/java/com/gildedrose/behavior/sellin/DefaultSellInBehavior.java @@ -0,0 +1,15 @@ +package com.gildedrose.behavior.sellin; + +import com.gildedrose.Item; + +public class DefaultSellInBehavior implements SellInBehavior { + + @Override + public void processSellInUpdate(Item item) { + decreaseSellIn(item); + } + + private void decreaseSellIn(Item item) { + item.sellIn = item.sellIn - 1; + } +} diff --git a/Java/src/main/java/com/gildedrose/behavior/sellin/SellInBehavior.java b/Java/src/main/java/com/gildedrose/behavior/sellin/SellInBehavior.java new file mode 100644 index 00000000..a092f5e5 --- /dev/null +++ b/Java/src/main/java/com/gildedrose/behavior/sellin/SellInBehavior.java @@ -0,0 +1,8 @@ +package com.gildedrose.behavior.sellin; + +import com.gildedrose.Item; + +public interface SellInBehavior { + + void processSellInUpdate(Item item); +}