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

StackOverflow https://stackoverflow.com/questions/1049339

  •  20-08-2019
  •  | 
  •  

سؤال

أنا أعمل مع نمط العرض السلبي.يقوم المستخدم بالنقر فوق زر حساب جديد.يقوم العرض بتفويض المسؤولية إلى مقدم العرض باستخدام استدعاءات الأساليب بدون معلمات.

تكمن المشكلة في وجود أنواع حسابات متعددة لذا يحتاج المستخدم إلى اختيار الحساب الذي يريد إنشاءه.كيف احل هذا الامر؟

  1. قم بإنشاء نموذج جديد من طريقة العرض، واحصل على المعلومات المطلوبة واعرضها كخاصية حتى يتمكن مقدم العرض من استرجاعها.(هذا يتجاهل فكرة أن العرض لا ينبغي أن يحتوي على أي منطق فيه)
  2. إنشاء واستخدام النموذج الجديد من مقدم العرض.(يؤدي هذا إلى ربط مقدم العرض مباشرة بالنموذج، متجاهلاً النقطة الكاملة لـ MVP)
  3. أنشئ النموذج الجديد في مكان آخر وقم بتمريره كوسيطة منشئة إلى مقدم العرض...أو عرض.
  4. انسَ الأمر وأضف زرًا جديدًا لكل نوع حساب.(هناك عدد من أنواع الحسابات وهذا سيؤدي إلى فوضى واجهة المستخدم ولكن فليكن.)
  5. أنا أتعامل مع هذا بطريقة خاطئة وأحتاج إلى إعادة التفكير في تصميمي.(إذا كان الأمر كذلك، فسيكون موضع تقدير الدفعة في الاتجاه الصحيح).
هل كانت مفيدة؟

المحلول 4

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

يتعين على مقدم العرض فقط الحصول على اسم عنصر القائمة من الخاصية المكشوفة ثم البحث عن نوع الحساب في قاموس خاص لأنواع الحسابات باستخدام اسم نوع الحساب كمفتاح.

نصائح أخرى

من المحتمل أن أقوم بإنشاء زوج آخر من عرض مقدم العرض للحصول على نوع الحساب.ثم إما

  • يقوم مقدم العرض الخاص بك بالاتصال بالمقدم الآخر مباشرةً لعرض النموذج الجديد أو
  • يسأل مقدم العرض نموذجه عن نوع الحساب الصحيح.يعرف النموذج أنه يجب أن يسأل في مكان آخر ويستدعي "مقدم نوع الحساب" أو حتى "نموذج نوع الحساب".

أعتقد أنني سأختار الخيار الأول إلا إذا أصبح مقدمك غير عملي.

أنا لست خبيرًا في MVP ولكني سأتعامل مع هذا باستخدام مندوب للحصول على نوع الحساب من العرض.يقوم المقدم باستدعاء المفوض في طريقة العرض التي تفتح نموذج "تحديد نوع الحساب" وإرجاع نوع الحساب المحدد عندما يحدد المستخدم نوع الحساب ويغلق النموذج.

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

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

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