mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-10-13 17:49:25 +00:00
Wasey's Submission - Gilded Rose Refactoring Design
This commit is contained in:
1 parent
9bcc8af37d
commit
ee14bca666
2 files changed
+34
No files matched your search
@@ -0,0 +1,34 @@
|
||||
# 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
|
||||
|
||||
---
|
||||
|
||||

|
||||
Binary file not shown.
|
After Width: | Height: | Size: 607 KiB |
Reference in new issue
Block a user