mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-07-26 09:11:26 +00:00
GildedRose now resolves each item to its strategy and applies it; all rules live in the strategies. The original one-arg constructor keeps working by delegating to ItemUpdaterFactory.Default(); a second constructor allows injecting a custom IItemUpdaterFactory. No behaviour change: the ThirtyDays approval snapshot and all existing-type spec tests pass unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
26 lines
542 B
C#
26 lines
542 B
C#
using System.Collections.Generic;
|
|
|
|
namespace GildedRoseKata;
|
|
|
|
public class GildedRose
|
|
{
|
|
private readonly IList<Item> _items;
|
|
private readonly IItemUpdaterFactory _factory;
|
|
|
|
public GildedRose(IList<Item> items) : this(items, ItemUpdaterFactory.Default())
|
|
{
|
|
}
|
|
|
|
public GildedRose(IList<Item> items, IItemUpdaterFactory factory)
|
|
{
|
|
_items = items;
|
|
_factory = factory;
|
|
}
|
|
|
|
public void UpdateQuality()
|
|
{
|
|
foreach (var item in _items)
|
|
_factory.Get(item).Update(item);
|
|
}
|
|
}
|