
ماذا يعني نموذج تصميم (Design Pattern)
أثناء بناء المشاريع البرمجية قد تظهر مشكلة ما وتتكرر في عدد كبير من المشاريع فتصبح مشكلة شائعة، ثم يقوم شخص أو مجموعة من الأشخاص بإيجاد حل لهذه المشكلة، ثم تطبيق هذا الحل بنجاح في عدد كبير من المشاريع عندها نقول إن هذا الحل هو نموذج تصميم.
نموذج التصميم ليس كود برمجي، بل هو عبارة عن خطة أو خطوات واضحة لحل مشكلة برمجية معينة، ويتم استخدام نماذج التصميم بكثرة في حياتنا العملية في تطبيقات الجافا والسي شارب والأندرويد ….
من خلال سلسة من المقالات الموجزة سأضع بين يدي القراء خلاصة خبرة تزيد عن ثلاث سنوات من التطبيق العملي لهذه النماذج بحيث يتمكن القارئ في نهاية السلسة من استخدام هذه النماذج في مشاريعه البرمجية.
هل من الضروري تعلم نماذج التصميم؟
نعم كمبرمج محترف هناك مجموعة من النماذج التي يجب أن تتقنها حتى تحصل على مشروع برمجي احترافي.
ماذا احتاج كي أتعلم نماذج التصميم؟
لتكون قادراً على فهم وتطبيق نماذج التصميم يجب أن تكون متقناً لأساسيات البرمجة الغرضية التوجه بأي لغة غرضية مثل لغة الجافا أو لغة السي شارب (اختر اللغة التي تناسبك).
هل يمكن إنجاز مشروع برمجي دون استخدام نماذج التصميم؟
نعم ولكن في هذه الحالة ستضيع الكثير من الوقت والجهد وستحصل على شيفرة برمجية أقل احترافية وأكثر عرضة للأخطاء والمشاكل.
ما الفوائد التي أحصل عليها عند استخدام نماذج التصميم
كما أسلفت أعلاه، نموذج التصميم هو حل مجرب وفعال لمشكلة معينة هناك من قام بالبحث فيها وتمكن من إيجاد هذا الحل، عندما أقوم باستخدام هذا الحل أقوم بتوفير الكثير من الجهد والوقت.
أنواع نماذج التصميم
النماذج الإنشائية Creational
هي النماذج التي تهتم بعملية إنشاء وبناء الأغراض (objects) في البرمجة الغرضية التوجه لجعل عملية الإنشاء أكثر فاعلية.
النماذج البنيوية Structural
هي النماذج التي تهتم بعملية تركيب أكثر من صف (class) للحصول على بنية أضخم.
النماذج السلوكية Behavioral
هي النماذج التي تهتم بكيفية الاتصال بين الكائنات.
من الطبيعي جداً بعد هذه المقدمة أن تشعر بالكثير من الغموض، أؤكد لك أن هذا الغموض سوف يزول بشكل تدريجي لذلك أنصحك إذا كنت تملك مزيداً من الوقت بالانتقال مباشرة إلى المقالة التالية.
المراجع
Gamma, Erich ; Helm, Richard ; Johnson , Ralph ; Vlissides , John;. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Hawthorne, New York: Addison-Wesley.