From a282a8455e70ddb3cbfc8391db53b1a52b7fe9fb Mon Sep 17 00:00:00 2001 From: Bjorn Misseghers Date: Tue, 13 Apr 2021 08:51:46 +0200 Subject: [PATCH] Add Itembehavior interface and default impl. Again, separating the item behavior into a separate interface allows us to determine the item behavior by choosing a sellIn and a qualityBehavior implementation. The defaultItemBehavior uses the default quality and sellIn behavior --- .../behavior/item/DefaultItemBehavior.java | 19 +++++++++++++++++++ .../behavior/item/ItemBehavior.java | 8 ++++++++ 2 files changed, 27 insertions(+) create mode 100644 Java/src/main/java/com/gildedrose/behavior/item/DefaultItemBehavior.java create mode 100644 Java/src/main/java/com/gildedrose/behavior/item/ItemBehavior.java diff --git a/Java/src/main/java/com/gildedrose/behavior/item/DefaultItemBehavior.java b/Java/src/main/java/com/gildedrose/behavior/item/DefaultItemBehavior.java new file mode 100644 index 00000000..c1d154fa --- /dev/null +++ b/Java/src/main/java/com/gildedrose/behavior/item/DefaultItemBehavior.java @@ -0,0 +1,19 @@ +package com.gildedrose.behavior.item; + +import com.gildedrose.Item; +import com.gildedrose.behavior.quality.DefaultQualityBehavior; +import com.gildedrose.behavior.sellin.DefaultSellInBehavior; +import com.gildedrose.behavior.quality.QualityBehavior; +import com.gildedrose.behavior.sellin.SellInBehavior; + +public class DefaultItemBehavior implements ItemBehavior { + + private final QualityBehavior qualityBehavior = new DefaultQualityBehavior(); + private final SellInBehavior sellInBehavior = new DefaultSellInBehavior(); + + @Override + public void processUpdate(Item item) { + qualityBehavior.processQualityUpdate(item); + sellInBehavior.processSellInUpdate(item); + } +} diff --git a/Java/src/main/java/com/gildedrose/behavior/item/ItemBehavior.java b/Java/src/main/java/com/gildedrose/behavior/item/ItemBehavior.java new file mode 100644 index 00000000..78fe08cf --- /dev/null +++ b/Java/src/main/java/com/gildedrose/behavior/item/ItemBehavior.java @@ -0,0 +1,8 @@ +package com.gildedrose.behavior.item; + +import com.gildedrose.Item; + +public interface ItemBehavior { + + void processUpdate(Item item); +}