سؤال

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

هل يمكن لأي شخص أن يرى ماهية وجهة نظره ، وكيف يختلف متغير "الانفصال" عن نمط الإستراتيجية؟
لقد أرفقت صورة تحتوي على النمطين من كتابه (الذي لم ينشر بعد).

http://img64.imageshack.us/img64/3620/strategytemplate.jpg

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

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

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

طريقة قالب:

  1. إنه نمط تصميم سلوكي
  2. يتم استخدامه لإنشاء طريعة كعب وتأجيل بعض خطوات التنفيذ على الفئات الفرعية. يتكون من بعض الخطوات التي يتم إصلاح طلبها.
  3. إنه يحدد الخطوات لتنفيذ خوارزمية ويمكن أن يوفر التنفيذ الافتراضي الذي قد يكون شائعًا لجميع أو بعض الفئات الفرعية.
  4. استدعاء طريقة قالب الفئة الفائقة من الفئات الفرعية ،

نمط الاستراتيجية:

  1. إنه نمط سلوكي
  2. إنه يعتمد على التفويض
  3. يغير الشجاعة من الكائن عن طريق تعديل سلوك الطريقة
  4. يتم استخدامه للتبديل بين عائلة الخوارزميات
  5. يغير سلوك الكائن في وقت التشغيل. سيتم اختيار خوارزمية واحدة من عائلة من الخوارزمية.

الاختلافات الأساسية.

  1. طريقة القالب يستخدم الميراث و إستراتيجية يستخدم التكوين
  2. ال طريقة القالب لا ينبغي تجاوز تنفيذ الفئة الأساسية. وبهذه الطريقة ، يتم التحكم في هيكل الخوارزمية بواسطة الفئة الفائقة, ، و ال يتم تنفيذ التفاصيل في الفصول الفرعية
  3. إستراتيجية يغلف الخوارزمية خلف واجهة ، والتي توفر لنا القدرة على تغيير الخوارزمية في وقت التشغيل. توفر استراتيجيات متعددة تنفيذًا مختلفًا للواجهة.

ألق نظرة على Journaldev طريقة القالب و إستراتيجية مقالات لفهم أفضل مع صناعة المصدر مقالات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top