Restaurant Ordering System هو تطبيق Console مبني باستخدام Java يهدف إلى محاكاة نظام إدارة طلبات داخل مطعم، مع تطبيق مجموعة من أشهر Design Patterns بطريقة عملية ومنظمة.
المشروع يوضح كيفية تصميم نظام قابل للتوسع (Scalable) وسهل الصيانة (Maintainable) من خلال فصل المسؤوليات وتنظيم منطق العمل بطريقة احترافية.
? أهم المميزات:
إنشاء قوائم طعام مختلفة (Vegetarian – Non-Vegetarian – Kids Menu)
إضافة مكونات اختيارية على الطلب (Extra Cheese – Sauces – Extras)
دعم طرق دفع متعددة مع تطبيق خصومات تلقائية
نظام تنبيه للمطبخ عند إنشاء طلب جديد
حساب الضريبة (14%) وإصدار فاتورة نهائية تفصيلية
دعم إضافة أكثر من عنصر داخل نفس الطلب
? Design Patterns المستخدمة:
Abstract Factory لإنشاء أنواع القوائم المختلفة
Decorator لإضافة مكونات إضافية بشكل ديناميكي
Strategy لتنفيذ طرق الدفع ومنطق الخصومات
Observer لتنبيه الطباخ والنادل عند وصول طلب
Facade لتبسيط عملية إنشاء الطلب بالكامل
--------------------------------------------------------------
The Restaurant Ordering System is a Java-based console application that simulates a real-world restaurant order management workflow while implementing multiple advanced software design patterns.
The project focuses on building a scalable, maintainable, and well-structured system by applying SOLID principles and separating business logic effectively.
? Key Features:
Multiple menu types (Vegetarian – Non-Vegetarian – Kids Menu)
Dynamic add-ons for food items (extra cheese, sauces, etc.)
Multiple payment strategies with automatic discounts
Kitchen notification system upon order creation
Automatic tax calculation (14%) with detailed bill generation
Support for multiple items per order
? Design Patterns Used:
Abstract Factory
Decorator
Strategy
Observer
Facade