Decorator पैटर्न ऑब्जेक्ट्स को wrap करके गतिशील रूप से व्यवहार या ज़िम्मेदारियाँ जोड़ता है — मूल क्लास को संशोधित किए बिना। यह कार्यक्षमता विस्तारित करने के लिए subclassing का एक लचीला विकल्प प्रदान करता है, जिससे आप व्यवहारों को compose कर सकते हैं।
Decorator पैटर्न क्या करता है
DECORATOR → WRAP an object to add behavior, keeping the same interface:
→ the decorator wraps the original, adds its behavior, and delegates to the original
→ you can STACK decorators (wrap a wrapped object) → compose multiple behaviors
→ adds functionality WITHOUT modifying the original class or using subclassing
→ "wrap to extend" — flexible, composable behavior addition
