2009-09-04 13 views
9

मैं एक नौसिखिया हूँ। मैं चिंताओं को अलग करने के लिए एमवीसी मॉडल के बारे में पूछना चाहता हूं। मैंने कुछ एमवीसी ट्यूटोरियल पढ़े हैं लेकिन मुझे अभी तक मॉडल, व्यू और कंट्रोलर की भूमिकाओं की पूर्ण समझ नहीं है।एमवीसी - चिंता का पृथक्करण

उदाहरण के लिए, मैं एक पोर्टफोलियो की निगरानी करने के लिए उपयोगकर्ता के लिए एक आवेदन लिख रहा हूं। मैं लैंडिंग पृष्ठ को विभिन्न मानदंडों के आधार पर निवेश की सूचियों को प्रदर्शित करना चाहता हूं, उदाहरण के लिए कोई निवेश की गई राशि के आधार पर निवेश सूचीबद्ध कर सकता है, दूसरा निवेश प्रदर्शन के आधार पर आदेश दे सकता है।

मेरा प्रश्न है, डिजाइन पैटर्न के अनुसार, जहां मुझे सूचियां बनाने के लिए तर्क लिखना चाहिए; मॉडल में, देखें या नियंत्रक?

इसके अलावा किसी भी एएसपीएनटी एमवीसी उदाहरणों की चिंता का प्रदर्शन करने की बहुत सराहना की जाती है।

अग्रिम लोगों में धन्यवाद।

उत्तर

4

खुद को दोहराने के जोखिम पर, मैं आपको in this thread दिए गए उत्तर पर इंगित करूंगा। The entire thread शायद आपके समय के लायक है, जैसा कि स्टैक ओवरफ़्लो पर दर्जनों अन्य हैं।

इसे तोड़ने के लिए नीचे बस:

नियंत्रकों - नियंत्रण आवेदन प्रवाह और डेटा के बारे में निर्णय करता है।

मॉडल - व्यवसाय तर्क प्रदर्शन करें।

विचार - आउटपुट उत्पादन।

अपनी विशेष स्थिति के लिए, आप में अपनी सूचियां तैयार करना चाहेंगे परत देखें। अपनी सूची संरचना बनाने के लिए टेम्पलेट का उपयोग करें, और उन्हें मॉडल परत से प्राप्त डेटा से भरें।

मैं एएसपीनेट प्रोग्रामर नहीं हूं, इसलिए मैं आपको एक विश्वसनीय उदाहरण नहीं दे सकता, लेकिन अन्य एसओ धागे के लिए शिकार कर रहा हूं।

1

एमवीसी पैटर्न आपको मॉडल में अपने सभी "व्यावसायिक तर्क" को सम्मिलित करने के लिए "आवश्यक" है। मॉडल का उपयोग डेटाबेस तक पहुंचने और डेटा लाने और इसे इस तरह से मोल्ड करने के लिए किया जाता है कि आपको इसे किसी व्यू में असाइन करने के लिए केवल नियंत्रक का उपयोग करना होगा।

एक चित्रमय उदाहरण: http://www.bhartisoftland.com/technologies-skill-sets/gifs/mvc-php.png

जरूरत नहीं शायद कहते हैं, कि आप मॉडल के उपयोग में नहीं जाते और नियंत्रकों में आपके सभी तर्क लिख सकते हैं, लेकिन यह है कि कोड का एक बहुत व्यापक है और शायद अनावश्यक राशि में परिणाम होगा। नियंत्रकों का उपयोग किया जाता है ताकि आप मॉडल और दृश्यों को कॉल कर सकें, और कोड की कुछ पंक्तियों के साथ एक से दूसरे में जानकारी का आदान-प्रदान कर सकें।

3

अच्छा सवाल, यह व्यक्तिपरक है और कई समाधान हैं, यह मेरे विचार और व्यक्ति की प्राथमिकताओं के संदर्भ में आता है।

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

आशा है कि यह स्पष्टीकरण समझ में आता है, और यदि लोग सहमत नहीं हैं तो मैं आलोचना के लिए खुला हूं ...

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