[Model-view-controller] एमवीसी: डेटा मॉडल और दृश्य मॉडल


Answers

क्यूं कर? 'कारण देखने के लिए मॉडल ऑब्जेक्ट का उपयोग करने की क्षमता नहीं होनी चाहिए!

कल्पना कीजिए कि आप परियोजना को एक वेब डिज़ाइनर को देखने के लिए करते हैं। अचानक वह / मॉडल मॉडल परत के माध्यम से अपने आवेदन के डेटा के साथ गड़बड़ करने की क्षमता रखता है। यह अच्छा नहीं है।

तो हमेशा केवल तरीकों के साथ ऑब्जेक्ट के बजाय दृश्य की जरूरत के डेटा को पास करें

Question

मैंने अतीत में कुछ एमवीसी सलाह पढ़े हैं जिन्हें बताते हुए कि आप डोमेन और दृश्य के लिए एक ही मॉडल ऑब्जेक्ट का पुन: उपयोग नहीं करना चाहिए; लेकिन मैं किसी को भी इस बात पर चर्चा करने में सक्षम नहीं हूं कि यह क्यों बुरा है।

यह मेरी राय है कि दो अलग-अलग मॉडलों का निर्माण - एक डोमेन के लिए, एक दृश्य के लिए - और फिर उनके बीच मानचित्रण कई दोहराव, प्लस थकाऊ मानचित्रण कोड (जिनमें से कुछ को ऑटोमैपर जैसी चीजों से कम किया जा सकता है) बनाता है, जो संभवतः त्रुटि प्रवण हो

डुप्लिकेशन्स और मैपिंग कोड की परेशानी के मुकाबले दो चिंताओं के लिए एक अलग मॉडल बनाने का क्या कारण है?




विशेष रूप से स्वरूपित होने के लिए दृश्य मॉडल की क्षमता और निश्चित रूप से शून्य-सुरक्षित भी शामिल हैं, यहां तक ​​कि स्पष्ट चिंताएं हैं




लगता है मेरे पास नियमों का दोहराव भी है

अर्थात। यूआई पर क्लाइंट ऑब्जेक्ट सत्यापन, फिर डोमेन ऑब्जेक्ट पर मैपिंग करना है जिसे मान्य किया जाना है।

मुझे क्या करना है लेकिन फिर भी एक मॉडल बनाने के लिए मेरे डोमेन ऑब्जेक्ट्स का नक्शा है - यानी एक वेबपेज जो ग्राहक जानकारी, स्टॉक जानकारी आदि को दिखाता है ... मेरा मॉडल एक ऐसी संरचना बन जाता है जो ग्राहक ऑब्जेक्ट और स्टॉक ऑब्जेक्ट रखता है।

CompanyPageModel

सार्वजनिक ग्राहक ग्राहक {get;} सार्वजनिक स्टॉक स्टॉक {get;};

तो मेरी एमवीसी परियोजना ViewData.Model.Customer.Name ViewData.Model.Stock.CurrentStocks में

पृथक्करण 'अधिक' की तरह लग रहा है, लेकिन बाद में, यूआई / डोमेन मॉडल का यह विभाजन होना अच्छा है ... sorta लेखन की तरह :)