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
This commit is contained in:
Bjorn Misseghers 2021-04-13 08:51:46 +02:00
parent 11c697d7c5
commit a282a8455e
2 changed files with 27 additions and 0 deletions

View File

@ -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);
}
}

View File

@ -0,0 +1,8 @@
package com.gildedrose.behavior.item;
import com.gildedrose.Item;
public interface ItemBehavior {
void processUpdate(Item item);
}