الرئيسيةبحث

نماذج التصميم (هندسة البرمجيات)

تعتبر نماذج التصميم (من الانكليزيّة: Design Patterns) فرعا مهمّا من فروع و علوم هندسة البرمجيات رغم انتقاد البعض له. تهدف نماذج التصميم إلى الاستخدام المتكرر لحلول وضعت لمشاكل تعتبر في حد ذاتها متكررة أو متواجدة بكثرة في عملية تصميم البرمجيات. لا تنطبق هذه النظرية على تصميم البرمجيات فقط، بل تتعدداه إلى عدة علوم أخرى مثل هندسة المباني و هندسة الالكترونيات و حتّى الطبخ.

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

تاريخ نماذج التصميم

ورد مصطلح نماذج (Patterns) أول مرة على لسان كريستوفر آلكسندر، و أوّل من أسقط المصطلح على هندسة البرمجيّات كان وارد كونينغهام.

في الحقيقة، لم تحظى نماذج التصميم بالشعبيّة إلاّ بعد نشر كتاب Design Patterns. Elements of reusable code سنة 1994. حدث في نفس السنة تنظيم أوّل مؤتمر مخصّص لمناقشة نماذج التصميم.

أنماط نماذج التصميم

حسب GOF تصنف نماذج التصميم إلى 3 أنماط أو مجموعات:

  1. نماذج التصميم الإنشائية أو الخلقية Creational Patterns
  2. نماذج التصميم السلوكية Behavioral Patterns
  3. نماذج التصميم الهيكلية Structural Patterns