दृश्य मॉडल को अपनी संपत्ति घोषित करनी चाहिए और दृश्य से मॉडल के विनिर्देशों को छिपाना चाहिए। यह आपको सबसे लचीलापन देता है, और मॉडल-प्रकार के मुद्दों को मॉडल कक्षाओं में लीक करने से रोकने में मदद करता है। आमतौर पर आपके व्यू मॉडल क्लास प्रतिनिधिमंडल द्वारा मॉडल को समाहित करते हैं। उदाहरण के लिए,
class PersonModel {
public string Name { get; set; }
}
class PersonViewModel {
private PersonModel Person { get; set;}
public string Name { get { return this.Person.Name; } }
public bool IsSelected { get; set; } // example of state exposed by view model
public PersonViewModel(PersonModel person) {
this.Person = person;
}
}
याद रखें: मॉडल है कि यह लेने वाली दृश्य मॉडल के बारे में कुछ भी पता नहीं करना चाहिए, और देखने मॉडल दृश्य है कि यह लेने के बारे में कुछ भी पता नहीं करना चाहिए। दृश्य पृष्ठभूमि में छिपे हुए मॉडल के बारे में कुछ नहीं जानना चाहिए। इस प्रकार, दृश्य मॉडल में गुणों के पीछे मॉडल को समाहित करें।
इन साधारण परिदृश्यों में व्यूमोडेल होने का शून्य लाभ है। यदि आप कहते हैं कि एक पूर्ववत फ़ंक्शन इत्यादि को कार्यान्वित करना चाहते हैं तो वह तर्क VM में जाएगा और आप मॉडल गुणों को लपेटेंगे। – rolls