سؤال

أفكر في تطبيق MVP - نمط العرض السلبي في JavaScript.في معظم الحالات، سيكون العرض عبارة عن عناصر dom بسيطة حيث يقوم المقدم بإرفاق مستمعي الحدث.ولكن عندما يتعلق الأمر بعناصر واجهة المستخدم مثل مربعات التحديد الزائفة المستندة إلى JavaScript أو الاقتراح التلقائي أو ميزات aria، فهل يجب أن يكون هذا جزءًا من فئة عرض JavaScript أم يجب أن يكون منطق تغيير العرض جزءًا من المقدم؟لقد نظرت إلى عرض جافا سكريبتMVCs ويبدو أنها مجرد قالب HTML تم إنشاؤه دون أي منطق.ولكن بالنسبة لي، لا يبدو أن هناك اختلافًا بين مقدم العرض الذي يستمع إلى مربع تحديد html والآخر الذي يستمع إلى مربع تحديد زائف باستخدام منطق جافا سكريبت لتقليد مربع تحديد حقيقي.لا ينبغي أن يهتم كلاهما بكيفية عمل الصندوق داخليًا، بل يجب عليهما فقط الاستماع إلى حدث التغيير.

فماذا تعتقد.ما هي وظيفة فئة العرض.

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

المحلول

وظيفة العرض هي بمثابة مشترك كهربائي إلى تقنية العرض.في هذه الحالة، من المحتمل أن تكون تقنية العرض الخاصة بك هي jQuery بدلاً من HTML عبر JavaScript.يجب أن يتم تصميم العرض للقيام بثلاثة أشياء:

  • معرفة متى تقع الأحداث، وإبلاغ هذه الأحداث إلى مقدم العرض (قد يكون ذلك بشكل غير مباشر، باستخدام إطار عمل المراسلة مثل postal.js)
  • أخبر مقدم العرض (عند سؤاله) "ما هي قيمة س" أين س هي قيمة ممثلة في طريقة العرض.
  • اقبل الرسائل من المقدم (عادةً من خلال استدعاء أسلوب مباشر) لتغيير القيم في طريقة العرض.

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

enter image description here

يوضح المكدس أعلاه كيف أتوقع تفاعل النموذج والعرض والمقدم، بالإضافة إلى علاقتهم بتقنية العرض ووحدة التحكم.

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

نصائح أخرى

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

فإذا تولى المقدم جميع مسؤوليات وجهات النظر، فلا حاجة إلى وجهة نظر على الإطلاق.قد يكون كذلك مجرد مقدم فقط.

وجهات نظر JavaScriptMVC هي قوالب جانبية عميل دمية.تميل وحدات تحكم العقدة إلى اتخاذ دور عرض أكثر تقليدية.

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