freeCodeCamp/guide/arabic/agile/design-patterns/index.md

4.9 KiB

title localeTitle
Design Patterns أنماط التصميم

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

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

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

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

قد يتم النظر إلى أنماط التصميم كنهج منظم لبرمجة الكمبيوتر الوسيطة بين مستويات نموذج البرمجة وخوارزمية ملموسة.

إن الكتاب الذي جعل هذا الحقل مشهوراً في هذا المجال ، هو " أنماط تصميم جانج أوف فور" (GoF) : عناصر البرامج الموجهة التي يمكن إعادة استخدامها (1994). تقدم سلسلة (23) من الأنماط لغة OO (C ++) التقليدية المصنفة في ثلاثة أنواع:

  • خلق (لإنشاء كائنات): مصنع مجردة ، باني ، طريقة المصنع ، النموذج ، المفرد.
  • الهيكلية (لتأليف الأشياء): محول ، جسر ، مركب ، ديكور ، واجهة ، ذبابة ، وكيل.
  • السلوكية (للتواصل بين الكائنات): سلسلة من المسؤولية ، الأمر ، المفسر ، المكرر ، الوسيط ، المذكرات ، المراقب ، الحالة ، الإستراتيجية ، طريقة القالب ، الزائر.

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

معلومات اكثر: