mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-04 09:11:39 +00:00
35 lines
745 B
Markdown
35 lines
745 B
Markdown
# Gilded Rose Design
|
|
|
|
**Pattern Used:** Strategy Pattern
|
|
|
|
---
|
|
|
|
## The Problem
|
|
|
|
The original code is a mess of nested if-statements. Hard to read, hard to change.
|
|
|
|
## The Solution
|
|
|
|
Give each item type its own class to handle updates:
|
|
|
|
- **NormalUpdater** - normal items degrade
|
|
- **BrieUpdater** - gets better with age
|
|
- **BackstageUpdater** - special concert rules
|
|
- **SulfurasUpdater** - never changes
|
|
- **ConjuredUpdater** - degrades 2x faster
|
|
|
|
## Why This Works
|
|
|
|
1. **Easy to add new items** - just make a new updater class
|
|
2. **Easy to read** - each class does one thing
|
|
3. **Easy to test** - test each updater separately
|
|
|
|
## Drawbacks
|
|
|
|
- More files to manage
|
|
- Factory needs updating for new items
|
|
|
|
---
|
|
|
|

|