2009-04-03 9 views
5

में मॉडल मैं पहले एएसपी.नेट एमवीसी पर पहले दर्शन को समझने की कोशिश कर रहा हूं। मुझे लगता है कि मैं नियंत्रक और दृश्य द्वारा निभाई गई भूमिकाओं पर बहुत स्पष्ट हूं लेकिन मैं मॉडल भाग पर थोड़ा उलझन में हूं। कुछ सूत्रों का कहना है कि यह डोमेन मॉडल है, कुछ लोग इसका डेटा मॉडल कहते हैं, कुछ लोग इसकी ऑब्जेक्ट्स को देखते हैं जो दृश्य के लिए बाध्य हैं।एमवीसी

आईएमएचओ ये बहुत अलग चीजें हैं। तो कृपया कोई इसे एक बार और सभी के लिए साफ़ कर सकता है?

उत्तर

9

मैं वास्तव में चीजें स्पष्ट करने के एक अतिरिक्त परत जोड़ना चाहते। असल में, "मॉडल" वह चीज है जो डोमेन विशिष्ट है, और जानता है कि कैसे खुद को बनाए रखना है (दृढ़ता मानना ​​डोमेन का हिस्सा है)।

आईएमओ, दूसरी परत जिसे मैंने संदर्भित किया है, मैं व्यूमोडेल को कॉल करता हूं ... कभी-कभी, "मॉडल" जो दृश्य में पारित हो जाता है, वास्तव में डोमेन के साथ कुछ लेना देना नहीं है ... इसमें सत्यापन जानकारी जैसी चीजें होंगी, दृश्य में प्रदर्शित करने के लिए उपयोगकर्ता प्रदर्शन जानकारी, लुकअप सूची मूल्य।

मुझे लगता है कि, डिस्कनेक्ट आप :-)

11

मॉडल "जानकारी है जिस पर आवेदन संचालित का डोमेन-विशिष्ट प्रतिनिधित्व" है। यह सिर्फ डेटा मॉडल नहीं है, क्योंकि यह एमवीसी पैटर्न के मुकाबले कम स्तर है, लेकिन (उदाहरण के लिए) यह कक्षाएं हैं जो डेटा को समाहित करती हैं, और आपको उन पर प्रसंस्करण करने देती हैं। एमएस से

स्कॉट गुथरी his announcement में इस परिभाषा का उपयोग करता है:

"मॉडल" एक MVC आधारित अनुप्रयोग में है कि स्थिति को बनाए रखने के लिए जिम्मेदार हैं आवेदन के घटक हैं। अक्सर इस राज्य एक डेटाबेस के अंदर एक समान होती है (उदाहरण के लिए: हम एक उत्पाद वर्ग है एसक्यूएल अंदर उत्पाद तालिका से डेटा का प्रतिनिधित्व करते थे हो सकता है)।

अतिरिक्त पठन:

+0

मुझे विकिपीडिया पर इसे हराया। –

+0

यदि राज्य केवल राज्य को बनाए रखने के लिए मौजूद है तो राज्य पर कौन/क्या कुशलतापूर्वक उपयोग करता है और संचालित करता है। मुझे उम्मीद है कि आप नियंत्रक नहीं कहेंगे या नहीं, मैं उनके बारे में भी उलझन में रहूंगा: | –

+0

"नियंत्रक: घटनाओं (आमतौर पर उपयोगकर्ता क्रियाओं) की प्रक्रियाओं और प्रतिक्रियाओं और अप्रत्यक्ष रूप से मॉडल पर परिवर्तन का आह्वान कर सकता है।" उपयोगकर्ता एक क्रिया का आह्वान करता है और यह मॉडल को बदल देगा, जिससे दृश्य को अपडेट किया जा सकेगा। – crb

2

आप इसे कदम ट्यूटोरियल द्वारा एक कदम this पर एक नजर है चाहिए।

अध्यायों में से एक से: पेज 26

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

आशा है कि यह उपयोगी होगा।

0

उदाहरण के लिए आ रही हैं, मान लें कि आपको करने के लिए एक वेब साइट का निर्माण कर रहे हैं, एक परमाणु संयंत्र के संचालन, प्रबंधन, की तुलना में मॉडल के मॉडल है वर्तमान ऑपरेटिंग पैरामीटर (तापमान इत्यादि) के लिए गुणों के साथ पूरा संयंत्र, बिजली उत्पादन शुरू करने/रोकने के तरीके आदि। एमएमएमएम ... इस मामले में मॉडल वास्तव में एक वास्तविक संयंत्र बनाम एक अलग मोड का प्रक्षेपण है लेकिन आप विचार मिला।

4

सलाह के आपके स्रोत सही हैं जब वे कहते हैं कि यह डोमेन मॉडल है। कई मामलों में, यह आपके डेटा मॉडल को भी काफी गठबंधन करेगा।

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

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