Wasey's Submission - Gilded Rose Refactoring Design

This commit is contained in:
Abdul Wasey Mohammed 2026-01-30 20:38:47 -05:00
parent 9bcc8af37d
commit ee14bca666
2 changed files with 34 additions and 0 deletions

View File

@ -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
---
![UML Diagram](gilded_rose_uml.png)

BIN
python/gilded_rose_uml.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 KiB