BEHAVIORAL PATTERN

State Pattern

نمط الحالة

يعني إيه؟ زي ماكينة البيع! سلوكها بيتغير حسب حالتها.
"مستني فلوس" ≠ "مستني اختيار" ≠ "بيطلع المنتج" 🏧

THE CONCEPT

ماكينة البيع 🏧

الحالة بتحدد السلوك 🥤🍫🍪 💵 🔘 VendingMachine (Context) 💰 WaitingMoney 🔘 ReadyToSelect 📦 Dispensing ❌ SoldOut ❌ بدون State Pattern: if (state == "waiting") ... else if ... ✅ مع State: كل حالة Class منفصل! الماكينة بتغير سلوكها تلقائياً لما الحالة تتغير!

💰 WaitingMoney

insertMoney() → يتقبل الفلوس ويغير للحالة التانية

🔘 ReadyToSelect

selectProduct() → يختار المنتج ويبدأ التسليم

📦 Dispensing

dispense() → يطلع المنتج ويرجع للبداية

جرب الماكينة! 🏧

💰 مستني فلوس
0 EGP
// ابدأ بإدخال الفلوس!
Command Chain of Responsibility