و عليكم السلام
أنماط التصميم أو Design Patterns هي عبارة عن حل لي مشكلة ما , كيف ذلك ؟ أنت و أنا كمبرمجين كل ما نعمل على مشروع جديد ستواجهنا مشاكل و وظيفتنا كمبرمجين إيجاد حلول لهذه المشاكل تمام ؟ المبرمجين حول العالم بعد خبرة عديد من السنوات لاحظوا بأن هنالك بعض المشاكل تجدها متكررة في أغلب المشاريع خاصة المتوسطة و الكبيرة منها و دائما ما يكون الحل هو نفس الحل مع تغيير بسيط من مبرمج إلي مبرمج و من برنامج إلي أخر , في سنة 1994 قام 4 من المهندسين بكتابة كتاب إسمه Design Patterns: Elements of Reusable Object-Oriented Software يتحدث عن أنماط التصميم و كان لهذا الكتاب صدى كبير في مجال البرمجة , و لكن يجب أن تعلم أن أنماط التصميم هي ليست شئ جديد في نحوية اللغة أو شي خاص بلغة معينة لا , أنماط التصميم تكاد تكون متشابه في جميع لغات البرمجة التي تعتمد على البرمجة الكائنية و أشهرها Java و C++.
مثال بسيط : بإمكان كتابة نفس البرنامج بأكثر من طريقة و لكن أحد الطرق تتميز عن غيرها كون أن طريقة بناءها قد تقوم بحل مشكله ستواجهنا مستقبلا بالرغم من أنها قد تكون أكثر تعقيدا من الطرق الأخرى و لكن لها فوائد عدة بينما الطريقة الأخرى تكون أبسط و أسهل لكن مستقبلا ستواجهك أحد المشاكل التي تم ذكرها في أنماط التصميم ستسبب لك مشكلة قد تقودك إلي إعادة كتابة برنامجك من الصفر , لهذا يتجه كثيرون لتعلم أنماط التصميم لكي يتفادو حدوث مثل هذه المشاكل مستقبلا.
السبب التاني لتعلم أنماط التصميم الشهيرة و الذي أعتبره مهم كأهمية السبب الأول هو أن أغلب إذ لم يكن كل المشاريع و التطبيقات و الشركات المحترمة تقوم بكتابة أكوادها البرمجية و بناء مشاريعها بإستخدام هذه الأنماط فأصبح واجب عليك كطالب أو باحث في سوق العمل أو من يرغب في بناء مشروع كبير أن يكون على دراية بهذه الأنماط , كما أنها ستساعدك على فهم الأكواد البرمجية للأخرين خاصة في المكتبات المفتوحة المصدر.
مالذي يجب عليك تعلمه ؟ OOP البرمجة كائنية التوجه
أتمنى أن أكون قد أوضحت لك بعض الغموض.