model-view-controller एमवीसी: डेटा मॉडल और मॉडल देखें




3 Answers

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

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

इसलिए विधियों के साथ ऑब्जेक्ट की बजाय हमेशा डेटा को देखने की ज़रूरत होती है।

model-view-controller model separation-of-concerns

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

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

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




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




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

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

मैं जो करना चाहता हूं वह मॉडल बनाने के लिए डोमेन ऑब्जेक्ट्स का सेट सेट है - यानी। एक वेबपृष्ठ जो ग्राहक की जानकारी, स्टॉक जानकारी इत्यादि दिखाता है ... मेरा मॉडल एक संरचना बन जाता है जिसमें ग्राहक वस्तु और स्टॉक ऑब्जेक्ट होता है।

CompanyPageModel

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

फिर मेरे एमवीसी प्रोजेक्ट में ViewData.Model.Customer.Name ViewData.Model.Stock.CurrentStocks

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






Related