كيف يمكنك الاستمرار في عرض المنطق من النموذج والمنطق التجاري من نموذج العرض في MVVM؟
-
23-08-2019 - |
سؤال
لا يمكنني معرفة كيفية إخطار نموذج العرض بالتغيرات في النموذج دون إضافة مجموعة من الأشياء المحددة واجهة المستخدم مثل InotifyProperyChanged و InotifyCollectionChanged في نموذجي أو إنشاء طن من الأحداث المختلفة والقيام بمجموعة من الأشياء التي تشعر بها مثل أنهم ui محددة ويجب أن يبقى بعيدا عن النموذج.
خلاف ذلك، أود فقط تكرار جميع منطق الأعمال في نموذج العرض للتأكد من أن كل شيء محدث، ثم ما هي نقطة وجود النموذج بعد ذلك؟
واحدة من تلك الصعبة التي لدي في نموذجي هي خاصية فئة "فئة". يمكنك التفكير في الأمر كمهيكل شجرة والعقودة كل من أحفاد العقدة ورقة. في النموذج الذي يتم إنشاؤه بالملكية على ذبابة متكررة من خلال كل أطفاله، وهذا كل شيء على ما يرام وجيد. ومع ذلك، يحتاج نموذج العرض إلى ربط هذه الخاصية ويحتاج إلى معرفة متى يتغير. يجب أن أغير النموذج فقط لاستيعاب نموذج العرض؟ إذا قمت بذلك، فإن النموذج المنظر لا يفعل أي شيء في هذه المرحلة، يرفع النموذج جميع الإخطارات الضرورية للتغييرات ويمكن أن يرتبط العرض مباشرة إلى النموذج. أيضا إذا كان النموذج شيء لم يكن لدي المصدر إليه، فكيف يمكنني الحصول على هذا؟
المحلول
أنا لا أوافق على ذلك INotifyPropertyChanged
و INotifyCollectionChanged
هي واجهة المستخدم الخاصة. هم في مساحات الأسماء والجمعيات غير المرتبطة بأي مكدس UI معين. لهذا السبب، وضعت عادة هذا النوع من السلوك منخفضة في النظام كما أستطيع (عادة طبقة البيانات).
إذا كان هناك بعض السبب لا ترغب في وضعه في هذا المستوى، فلا بأس بذلك. يمكنك وضعه في مستوى أعلى مثل خدمة الخدمة أو UI. ومع ذلك، تحتاج إلى التأكد من حدوث جميع التغييرات في هياكل البيانات من خلال تلك الطبقة أيضا.