Design pattern الفرع المهم من فروع وعلوم هندسة البرمجيات

▪️يمكن لأنماط التصميم أن تسرّع عملية التطوير عن طريق توفير تصوّرات أثبتت جدواها بعد اختبارها مرات كثيرة
▪️يتطلب التصميم البرمجي الفعال أن نأخذ بعين الاعتبار المشاكل التي قد لا تظهر إلا لاحقا عند التنفيذ
▪️تساعد إعادة استخدام أنماط التصميم في منع الأمور الدقيقة من التسبب بمشاكل كبيرة
▪️تحسّن من القدرة على قراءة التعليمات البرمجية للمبرمجين والمعماريين Architects الذين هم على دراية بهذه الأنماط.

🔻أنماط التصميم الإنشائية
👈🏻تعنى نماذج التصميم هذه باستهلال الأصناف Class instantiation
👈🏻يمكن تقسيم هذه النوعيّة من النماذج إلى فئتيْن:

 ▪️نماذج لإنشاء الأصناف
▪️نماذج لإنشاء الكائنات.

🔸️من أمثلة أنماط التصميم الانشائي

👈🏻نمط معمل التجريد Abstract Factory
👈🏻نمط الباني Builder
👈🏻نمط طريقة المعمل

🔻أنماط التصميم الهيكلية
👈🏻تعنى أنماط التصميم هذه بتركيب Composition الكائنات والأصناف.
👈🏻تستخدم الأنماطُ الهيكليّة لإنشاء الأصناف التوريثَ Inheritance لتركيب واجهات Interfaces
👈🏻أما الأنماطُ الهيكليّة لإنشاء الكائنات فتعرّف طرقا لتكوين الكائنات بهدف الحصول على وظائف جديدة.
🔸️من أمثلة هذه الأنماط:
👈🏻نمط المحول Adapter
👈🏻نمط الجسر Bridge
👈🏻نمط المظهر Facade
👈🏻نمط بيانات الصنف الخاصة Private Class Data
🔸️أنماط التصميم السلوكية
👈🏻تعنى أنماط التصميم هذه بالتواصل Communication بين كائنات الأصناف.
👈🏻النماذج السلوكية هي تلك النماذج التي تهتم على وجه الخصوص بالتواصل بين الكائنات، ومن بينها:

🔸️نمط سلسلة المسؤوليات Chain of Responsibility
🔸️نمط السيطرة Command
🔸️نمط المفسّر Interpreter
🔸️نمط المكرّر Iterator
🔸️نموذج الوسيط Mediator

🔻انتقد بعض العاملين في مجال علوم الحاسب مفهوم أنماط التصميم وأبدوا اعتراضاتٍ👇🏻
▪️يستهدف المشكلة الخاطئة
▪️يفتقر إلى الأسس الرسمية
▪️يقود إلى حلول غير فعالة
▪️لا يختلف كثيرا عن التجريدات الأخرى
👈🏻يزعم بعض المؤلفين أن أنماط التصميم لا تختلف كثيرا عن أشكال التجريد الأخرى
👈🏻تعدّ بنية بنية MVC ( “نموذج – عرض – متحكم”، “Model – View – Controller”) مثالا عن “نمط” يسبق مفهوم أنماط التصميم بعدة سنوات.

🔸️يجادل البعض بأن أول مساهمة في مجتمع أنماط التصميم هو استخدام كتاب A pattern language (لغة نمط) طريقةً للتوثيق Documentation
وهي ممارسة غالبا ما يتجاهلها المختصّون عند عرضهم لأصول مفهوم أنماط التصميم.