Add base class for item behavior

The class takes quality and sellIn behavior implementations as
constructor parameters
This commit is contained in:
Bjorn Misseghers 2021-04-13 10:59:23 +02:00
parent 05a3cf148a
commit 7435c53775

View File

@ -0,0 +1,26 @@
package com.gildedrose.behavior.item;
import com.gildedrose.Item;
import com.gildedrose.behavior.quality.QualityBehavior;
import com.gildedrose.behavior.sellin.SellInBehavior;
public class ItemBehaviorImpl implements ItemBehavior {
private final QualityBehavior qualityBehavior;
private final SellInBehavior sellInBehavior;
private ItemBehaviorImpl(QualityBehavior qualityBehavior, SellInBehavior sellInBehavior) {
this.qualityBehavior = qualityBehavior;
this.sellInBehavior = sellInBehavior;
}
public static ItemBehaviorImpl of(QualityBehavior qualityBehavior, SellInBehavior sellInBehavior) {
return new ItemBehaviorImpl(qualityBehavior, sellInBehavior);
}
@Override
public void processUpdate(Item item) {
qualityBehavior.processQualityUpdate(item);
sellInBehavior.processSellInUpdate(item);
}
}