ما هي أنماط التصميم

من موسوعة حسوب
مراجعة 12:38، 26 نوفمبر 2018 بواسطة أسامه-دمراني (نقاش | مساهمات) (إدخال 2.0 محتوى صفحة What is patterns)

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

محتوى النمط

يتكون وصف النمط عادة من التالي:

مشكلة يحلها النمط.

دافع لحل المشكلة باستخدام الأسلوب الذي يرشحه النمط.

هيكلة الفئات التي تكوّن الحل.

مثال بلغة برمجية.

وصف فروق تنفيذ النمط في سياقات مختلفة.

العلاقات مع الأنماط الأخرى.

من يخترع الأنماط؟

الأنماط تُكتشف ولا تخترع، فهي نماذج لحل مشاكل متكررة وليست أفكارًا مبتكرة أو فريدة. وأول من قدم وصفًا للأنماط كان كريستوفر أليكساندر (Christopher Alexander) في كتابه "لغة النمط: المدن والمباني والإنشاء" (A Pattern Language: Towns, Buildings, Construction)، ويتحدث في الكتاب عن "لغة" لتصميم بيئة المدن، وتجيب فصول الكتاب عن أسئلة معمارية تصف ما يجب أن تكون عليه تلك المدن، مثل ارتفاع النوافذ وعدد الطوابق لكل مبنى، وحجم المساحات الخضراء في كل حي وهكذا.

وقد ألهمت فكرة الكتاب أربعة مؤلفين هم إريك جاما (Erich Gamma) وجون فليسيدز (John Vlissides) ورالف جونسون (Ralph Johnson) وريتشارد هيلم (Richard Helm) لينشروا كتابًا في 1995 اسمه "أنماط التصميم: عناصر البرمجيات كائنية التوجه القابلة لإعادة الاستخدام" (Design Patterns: Elements of Reusable Object-Oriented Software)، طبقوا فيه مبدأ الأنماط التقليدية على البرمجة، وقد احتوى الكتاب على ثلاثة وعشرين نمطًا يحلون أغلب مشاكل التصميم كائني التوجه. وقد اكتُشفت عشرات الأنماط منذ ذلك الوقت، وصار مبدأ الأنماط مشهورًا في أنواعٍ أخرى من البرمجة، ما يعني إمكانية اكتشاف أنماط جديدة خارج نطاق التصميم كائني التوجه.