أسلوب المصنع

من موسوعة حسوب
< Design Patterns
مراجعة 13:21، 1 ديسمبر 2018 بواسطة أسامه-دمراني (نقاش | مساهمات) (إدخال 2.0: محتوى)
اذهب إلى التنقل اذهب إلى البحث

أسلوب المصنع هو نمط تصميم إنشائي (creational) يوفر واجهة لإنشاء الكائنات (objects) داخل فئات رئيسية (superclasses) لكنها تسمح في نفس الوقت للفئات الثانوية (subclasses) بتغيير نوع تلك الكائنات التي سيتم إنشاؤها.

المشكلة

تخيل أنك تنشئ تطبيقًا لشحن البضائع، وأول نسخة من ذلك التطبيق لا تتعامل إلا مع الشحن البري بالشاحنات (Trucks) لذا من المنطقي أن يكون أغلب شيفرتك البرمجية تحت فئة Trucks. لنفرض هنا أن التطبيق اشتهر بعد مدة وزادت أعداد الطلبات جدًا إلى درجة أنك بدأت تتلقى طلبات شحن بحري، فإنك ستحتاج إلى إضافة فئة جديدة ليكن اسمهاShips.

لكن هذا سيتطلب تغييرات في كل الشيفرة البرمجية لديك، وإن قررت بعد فترة أخرى إضافة نوع آخر من الشحن -الجوي مثلًا- إلى التطبيق فستحتاج إلى خوض هذه العملية كلها مرة ثالثة، وستكون النتيجة شيفرة مزدحمة فوضوية تملؤها العبارات الشرطية التي تعتمد على فئات كائنات الشحن.

الحل

يقترح أسلوب المصنع هنا أن تستبدل استدعاء لأسلوب "factory" الخاص بالإنشاء المباشر للكائنات -من خلال مُعامِل new-