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

[نسخة منشورة][نسخة منشورة]
تم حذف المحتوى تمت إضافة المحتوى
إضافة جدول نماذج التصميم الهيكلية
إضافة جدول نماذج التصميم السلوكية
سطر 26:
حسب GoF تصنف نماذج التصميم إلى 3 أنماط أو مجموعات:
 
# [[نماذج التصميم الإنشائية]] Creational Patterns
# [[نماذج التصميم السلوكية]] Behavioral Patterns
# [[نماذج التصميم الهيكلية|نماذج تصميم هيكلية]] Structural Patterns
يتم من خلالها وصف استخدام مبادئ توزيع الصلاحيات ([[التفويض (هندسة برمجيات)|التفويض]]) [[التجميع (هندسة برمجيات)|والتجميع]] والاستشارة. لمزيد من المعلومات حول البرمجة غرضية التوجه راجع [[الترابط (هندسة برمجيات)|الترابط]]، [[الالتصاق (هندسة برمجيات)|الالتصاق]]، [[الوراثة (هندسة برمجيات)|الوراثة]]، و<nowiki/>[[تعددية الأِشكال (هندسة برمجيات)|تعددية الأِشكال]]. تصنيف آخر قدم ملاحظات حول [[نماذج تصميم بنيوية (هندسة برمجيات)|نماذج تصميم بنيوية]] قد تطبق في المستوى البنيوي من التصميم مثال ذلك نمط [[نمط-عرض-متحكم (إم في سي)|نمط-عرض-متحكم]].
سطر 37:
! الوصف
!في نماذج التصميم
!بعدفي مرحلة [[اكتمال الرماز المصدري (هندسة برمجيات)|اكتمال الرماز المصدري]]<ref>{{مرجع كتاب|المسار=https://www.worldcat.org/oclc/54974573|العنوان=Code complete|الأخير=Steve,|الأول=McConnell,|الرقم المعياري=9780735619678|أكلس=54974573}}</ref>
!غير ذلك
|-
سطر 105:
!الوصف
!في نماذج التصميم
!في مرحلة [[اكتمال الرماز المصدري]]<ref>{{مرجع كتاب|المسار=https://www.worldcat.org/oclc/54974573|العنوان=Code complete|الأخير=Steve,|الأول=McConnell,|الرقم المعياري=9780735619678|أكلس=54974573}}</ref>
!غير ذلك
|-
سطر 180:
|لا يوجد
|}
 
=== [[نماذج التصميم السلوكية]] ===
{| class="wikitable"
!الاسم
!الوصف
!في نماذج التصميم
!في مرحلة [[اكتمال الرماز المصدري]]
!غير ذلك
|-
|[[Blackboard (design pattern)|Blackboard]]
|نمط [[ذكاء صناعي|للذكاء الصناعي]] لتجميع عدة مصادر للمعلومات معاً.
|لا
|لا
|لا يوجد
|-
|[[Chain of responsibility pattern|Chain of responsibility]]
|يتم فيه تجنب التصاق مرسل الطلب مع مستقبل الطلب عن طريق اعطاء الفرصة لأكثر من غرض لاستقبال الطلب من المرسل بحيث اذا كان الغرض المستقبل غير قادر على تنفيذ الطلب يقوم بتمريره لغرض مستقبل اخر وهكذا حتى يتم الوصول الى غرض قادر على تنفيذ الطلب وإعادة النتيجة للمرسل
|نعم
|لا
|لا يوجد
|-
|[[Command pattern|Command]]
|يقوم بتغليف الطلب على شكل غرض مما يسمح بتمرير عدة طلبات زبائن معاً ويسمح باستخدام الارتال وتسجيل الطلبات ويدعم الطلبات غير القابلة للتنفيذ.
|نعم
|لا
|لا يوجد
|-
|[[Interpreter pattern|Interpreter]]
|في لغة معينة، يتم تعريف تمثيل القواعد الخاصة بهذه اللغة بالإضافة الى مفسر يستخدم هذا التمثلي لتفسير جمل هذه اللغة
|نعم
|لا
|لا يوجد
|-
|[[Iterator pattern|Iterator]]
|يوفر طريقة للمرور على عناصر غرض مركب بشكل تسلسلي دون كشف طريقة تمثيل العناصر في هذا الغرض
|نعم
|نعم
|لا يوحد
|-
|[[Mediator pattern|Mediator]]
|يعرف غرض يقوم بتحديد طريقة تفاعل عدة أغراض مع بعضها البعض، يخفف هذا النمط من [[التصاق (هندسة برمجيات)|الالتصاق]] لأنه ينمع الأغراض من الدلالة على بعضها بشكل مباشر، وبدلاً من ذلك فهي تتصل مع بعضها عن طريق غرض وسيط وبالتالي يتم السماح لفعالية هذه الأغراض بالاختلاف دون القلق من تأثر الأغراض الأخرى بهذا الاختلاف
|نعم
|لا
|لا يوجد
|-
|[[Memento pattern|Memento]]
|يقوم بأخذ صورة عن الحالة الحالية لغرض ما مما يسمح لهذا الغرض بالعودة الى هذه الحالة متى دعت الحاجة.
|نعم
|لا
|لا يوجد
|-
|[[Null Object pattern|Null object]]
|يتم إنشاء غرض افتراضي ليحل محل اي مرجعية لغرض غير موجود.
|لا
|لا
|لا يوجد
|-
|[[Observer pattern|Observer]]
|يعرف ارتباط من نوع واحد-متعدد بين أغراض بحيث إن تغيرت حالة غرض معين يتم إرسال تنبيه بذلك التغيير الى باقي الإغراض بشكل تلقائي.
|نعم
|نعم
|لا يوجد
|-
|[[Design pattern Servant|Servant]]
|يعرف فعالية مشتركة لمجموعة صفوف
|لا
|لا
|لا يوجد
|-
|[[Specification pattern|Specification]]
|يعيد تجميع [[منطق العمل]] بشكل [[جبر بولياني|بولياني]]
|لا
|لا
|لا يوجد
|-
|[[State pattern|State]]
|يسمح للغرض بتعديل سلوكه تبعاً لحالته الداخلية
|نعم
|لا
|لا يوجد
|-
|[[Strategy pattern|Strategy]]
|يتم تعريف مجموعة من الخوارزميات ويتم تغليف كل واحدة منها، ويتم التبديل بين هذه الخوارزميات حسب الحاجة بحيث يتم استخدام الخوارزمية المناسبة بشكل مستقل عن الزبون.
|نعم
|نعم
|لا يوحد
|-
|[[Template method pattern|Template method]]
|يتم تعريف هيكل الخوارزمية ضمن العملية ويتم تحويل بعض خطوات التنفيذ الى صفوف فرعية. يسمح هذا النمط للصفوف الفرعية بتعديل خطوات معينة في الخوارزمية دون تعديل البنية الأساسية للخوارزمية.
|نعم
|نعم
|لا يوحد
|-
|[[Visitor pattern|Visitor]]
|يتم تعيين عملية ليتم تنفيذها على عناصر بنية غرض. هذا النمط يسمح بتعريف عمليات جديدة دون تغيير عناصر الغرض الذي يتم تطبيق هذه العمليات عليه
|نعم
|لا
|لا يوجد
|}
 
{{تصنيف كومنز|Software design patterns}}
{{شريط بوابات|برمجة الكمبيوتر|تقنية}}