GildedRose-Refactoring-Kata/csharp.xUnit/GildedRose/GildedRose.cs
Artur Goloyad 4074da89e3 refactor: collapse UpdateQuality to delegate to the factory
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>
2026-07-25 20:50:46 +02:00

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