mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-07-26 09:11:26 +00:00
Introduce the Strategy + Factory design: IItemUpdater (Name + Update), an ItemUpdaterBase with the single shared [0,50] clamp helper, stateless strategies for normal/Aged Brie/Sulfuras/Backstage, and a factory with two-tier resolution (exact name via case-insensitive dictionary, then Conjured prefix rule, then the default fallback). Not wired into GildedRose yet; no behaviour change. The Conjured strategy itself arrives in the feature commit. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
16 lines
361 B
C#
16 lines
361 B
C#
using System;
|
|
|
|
namespace GildedRoseKata;
|
|
|
|
public abstract class ItemUpdaterBase : IItemUpdater
|
|
{
|
|
public const int MinQuality = 0;
|
|
public const int MaxQuality = 50;
|
|
|
|
public abstract string Name { get; }
|
|
|
|
public abstract void Update(Item item);
|
|
|
|
protected static int ClampQuality(int quality) => Math.Clamp(quality, MinQuality, MaxQuality);
|
|
}
|