5

एक नया एमवीवीएम-डब्ल्यूपीएफ-एप्लिकेशन शुरू करते समय, मैं आमतौर पर शुरुआत में एमवीवीएम-लाइट दाएं शामिल करता हूं। यह ठीक काम करता है, जब तक मेरा आवेदन बढ़ता नहीं है।क्या एमवीएमएमलाइट से एंटीपटरर्न से मानक व्यू मॉडेल लोकेटर है? और उसे कम करने के लिए कैसे?

कुछ लोग जहां ViewModelLocator विशाल हो जाता है (सभी प्रकार के चाइल्ड व्यूडियो के लिए कई व्यूमोडेल)। और खरगोश छेद के नीचे भी मुझे एक ही व्यूमोडेल के कई अलग-अलग उदाहरणों की आवश्यकता है। (उदाहरण के लिए वस्तुओं की एक सूची के लिए, जिसके साथ एक ही स्क्रीन पर बातचीत करना चाहेंगे)। यह वह जगह है जहां संघर्ष शुरू होता है, कोड को टेस्ट करने योग्य रखने के लिए, उस अच्छे को कैसे संभालना है?

तो, अगर मैं ViewModelLocator से छुटकारा पाने के लिए चाहते हैं (यह एक antipattern है? एक ServiceLocator की तरह लगता है) मैं सभी ViewModels के लिए बनाना चाहते हैं (कई) सार कारखानों ViewModel पहली जगह में जाकर करना चाहिए?

उत्तर

0

व्यूमोडेल लोकेटर नियंत्रण में बदलाव (आईओसी) के लिए उपयोग की जाने वाली नेविगेशन बस के लिए एक फैंसी नाम है। हालांकि यह एक नई तकनीक प्रतीत होता है, लेकिन एक नेविगेशन बस वास्तव में एक अलग तरह से सेवा बस का उपयोग कर रही है। यदि आपके पास स्थैतिक (वीबी में साझा) कंटेनर है तो यह विरोधी पैटर्न नहीं है। यदि आप अपने व्यू मॉडेल में कंटेनर पास कर रहे हैं तो एंटी-पैटर्न आता है।

एमवीवीएम में ध्यान रखने योग्य बात यह है कि यह बहुमुखी डिजाइन पैटर्न है, और आप इसे कई तरीकों से बढ़ा सकते हैं। बड़ी परियोजनाओं के लिए सबसे अच्छा समाधान घटक डिजाइन (एक ऐसा डिज़ाइन है जहां आपके एप्लिकेशन की प्रत्येक विशेषता इसके नामस्थान या प्रोजेक्ट में है)।

एक डिजाइन आरेख इसलिए की तरह लग रहे हो सकता है:

  • ग्राहक
    • मॉडल
    • ViewModels
    • सेवाएं
  • आदेश
      ,210
    • मॉडल
    • ViewModels
    • सेवाएं

आदि ... यह वास्तव में डेवलपर के स्वाद के लिए नीचे आता है। जब तक आपका डिजाइन सुसंगत है।

आगे पढ़ने: नेविगेशन बस के लिए ViewModelLocator खोज को बेहतर ढंग से समझने के लिए। इवेंटएग्रेगेटर को बेहतर ढंग से समझने के लिए, के लिए खोजें संदेश बस

संबंधित मुद्दे