يمكن لأنماط التصميم أن تسرّع عملية التطوير عن طريق توفير تصوّرات أثبتت جدواها بعد اختبارها مرات كثيرة
يتطلب التصميم البرمجي الفعال أن نأخذ بعين الاعتبار المشاكل التي قد لا تظهر إلا لاحقا عند التنفيذ
تساعد إعادة استخدام أنماط التصميم في منع الأمور الدقيقة من التسبب بمشاكل كبيرة
تحسّن من القدرة على قراءة التعليمات البرمجية للمبرمجين والمعماريين 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
وهي ممارسة غالبا ما يتجاهلها المختصّون عند عرضهم لأصول مفهوم أنماط التصميم.