Monday 15 February 2010

architecture - MVC, where to generate ViewModel classes? -


जहां ViewModel creation होना चाहिए? सेवा स्तर में, नियंत्रक में?

  सार्वजनिक वर्ग ObjectA {सार्वजनिक स्ट्रिंग नाम {get; set;} सार्वजनिक IList & lt; ChildB & gt; बच्चे {प्राप्त; सेट;}} सार्वजनिक वर्ग ऑब्जेक्ट एवियमोडेल {सार्वजनिक ऑब्जेक्ट ए ऑब्जेक्ट ए {प्राप्त करें; सेट;} सार्वजनिक आईएलआईआईएसटी & lt; ChildB & gt; SelectableChildren {get; set}}}  

क्या होगा यदि ObjectA पर कुछ गुणों को रनटाइम पर गणना करना है?

  सार्वजनिक वर्ग ObjectA {सार्वजनिक स्ट्रिंग नाम { प्राप्त; सेट;} सार्वजनिक IList & lt; ChildB & gt; बच्चे {get; set;} सार्वजनिक गणित विधि {get; set;} सार्वजनिक दशमलव की गणना {}; सेट;}}  

कहता है कि ObjectA.CalculatedValue है रिपॉजिटरी में सभी या कुछ ChildB ऑब्जेक्ट्स से गणना की गई है (न केवल संबंधित ऑब्जेक्ट्स), और यह कि CalculateMethod मान के आधार पर अलग-अलग गणना की जाती है? क्या मुझे ObjectA का विस्तार करना चाहिए, और उस स्थिति में, मुझे इसे कहाँ रखा जाना चाहिए? एक साथ ऑब्जेक्ट ए या एक डीटीओ कहीं और के रूप में? और जहां गणना की जानी चाहिए?

यह एक गैर तुच्छ का सवाल है। विचार के लिए एक प्रारंभिक बिंदु है और वहां से अन्य चर्चाओं के संदर्भ हैं।

मैं जावा पृष्ठभूमि से हूं और इसलिए आपके पास दुनिया का प्रत्यक्ष अनुभव नहीं है, लेकिन एक वैचारिक स्तर पर मेरी सोच जाती है: / P>

मॉडल विचारों के बारे में कुछ नहीं जानते हैं, वे सिर्फ डेटा उपलब्ध करते हैं और उपलब्ध सत्यापन नियम भी बना सकते हैं कि विचारों को उपयोगी हो सकता है उदाहरण के लिए: यहां कुछ तारीख है, यह फ़ील्ड "विभाग" फ़ील्ड है। यहां सभी मान्य विभागों की एक सूची है, एक मॉडल के रूप में मैं आपको कुछ नहीं जानता हूं, लेकिन आप अनुमान लगा सकते हैं कि आप विभागों की सूची से एक ड्रॉप-डाउन सूची को पॉप्युलेट कर सकते हैं।

उस समस्या के साथ मॉडल बहुत मात्रा में डेटा भेज सकता है, जिसके बारे में विचार की कोई परवाह नहीं है, पर पढ़ें ...

नियंत्रक विचारों और मॉडलों की वास्तविक सामग्री के बारे में कुछ भी नहीं जानते हैं, लेकिन वे जानते हैं कि कुछ निश्चित मॉडल में रुचि रखते हैं इसलिए उनके पास ज़िम्मेदार होने का ज़िम्मेदारी है कि वे डेटा की जरूरत पाना चाहते हैं। नियंत्रक एक डेटिंग एजेंसी की तरह है, परिचय बना रहा है, लेकिन फिर से कदम उठा रहा है।

इसलिए सबसे सामान्य परिदृश्य में देखें तो खुद को एक मॉडल दिया जाता है और डेटा की आवश्यकता होती है जो इसे ज़रूरत होती है। तो दृश्य मॉडल के बारे में जानता है, लेकिन इसके विपरीत नहीं। अब एक आरोपण विवरण के रूप में हम उस रिश्ते को एक व्यूमोडेल वर्ग से बाहर खींच सकते हैं, इस दृश्य के लिए दिलचस्प आंकड़ों को पकड़ सकते हैं और हम एक दृश्यमॉडेलफैक्टालर क्लास के तर्क को भी निकाल सकते हैं। नियंत्रक वास्तव में देखने के आधार पर उचित ViewModelFactory को चुनने की जिम्मेदारी रख सकता है, और इसलिए कुछ अर्थ में नियंत्रक "व्यू मॉोडेल" बना रहा है, लेकिन तर्क (वैचारिक) दृश्य की ज़िम्मेदारी है।


No comments:

Post a Comment