2010-06-22 16 views
8

के साथ मिक्सिंग व्यू मॉडल डोमेन मॉडल के साथ दृश्य मॉडल मिश्रण करना उचित है?सर्वश्रेष्ठ कदाचार - डोमेन मॉडल

तो यानी दृश्य मॉडल वस्तु कुछ डोमेन मॉडल ऑब्जेक्ट हैं (करीब नहीं दूसरी तरह!)

उत्तर

7

आम तौर पर, आप अपने दृश्य मॉडल में अपने डोमेन मॉडल संदर्भ के लिए होगा या कम से कम में डोमेन मॉडल लोड नियंत्रक और जानकारी को अपने दृश्य मॉडल पर पास करते हैं।

मैं नियंत्रकों और दृश्यों को जितना संभव हो सके सरल/गूंगा रखना पसंद करता हूं, क्योंकि दोनों डोमेन मॉडल और व्यू मॉडल परीक्षण के लिए एफएआर आसान हैं।

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

+0

लेकिन ऐसा करना केवल उचित है और केवल तभी काम करता है जब आपका डोमेन मॉडल दृश्य की ज़रूरतों को अच्छी तरह से उपयुक्त करता है। मैंने सुना है कि एक दृश्य मॉडल में केवल स्ट्रिंग गुण होते हैं जो पहले से ही तैयार किए गए हैं। बीटीडब्ल्यू आपको गुणों की प्रतिलिपि नहीं लेनी है। मेरा सुझाव है कि आप ऑटोमैपर के बारे में पढ़ रहे हैं, बस इसे गूगल करें! यह एक महान उपकरण imho है। – Rookian

+0

नोट मैंने कुछ परियोजनाओं में प्रतिलिपि बनाई है, मैं दूसरों में कॉपी करता हूं, विशेष रूप से, ऑटोमैपर :) इसके अतिरिक्त, मैं मूल रूप से जो वर्णन करता हूं वह करता हूं। मैं अपने डोमेन मॉडल का उपयोग अपने दृश्य मॉडल के रूप में नहीं करता हूं। हम ऐसा करते थे और यह हमें कुछ बार थोड़ा सा करता था। – CubanX

+0

इसलिए जब मैं आपको सही समझता हूं, तो आप दृश्य मॉडल ऑब्जेक्ट्स और डोमेन मॉडल ऑब्जेक्ट्स को मिश्रित करते हैं। और आप दोनों को देखने के लिए (यानी व्यू मॉडल ऑब्जेक्ट और डोमेन मॉडल ऑब्जेक्ट समेत कुल) को भी भेजते हैं? – Rookian

2

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

+1

क्या आप विस्तार से समझा सकते हैं कि आप डोमेन मॉडल ऑब्जेक्ट्स के साथ दृश्य मॉडल ऑब्जेक्ट्स को क्यों मिश्रित नहीं करेंगे? पेशेवर और विपक्ष ... – Rookian

+0

मेरे डोमेन मॉडल कक्षाओं में आम तौर पर उन पर बहुत सारे राज्य म्यूटेटर विधियां होती हैं। मैं इन तरीकों से कहां से बुलाया जाना चाहिए, इस पर भ्रम को रोकने के लिए बस इन्हें सीधे दृश्य परत पर बेनकाब नहीं करना चाहता हूं। मुझे अपने सभी डोमेन कमांडों को एक सेवा परत के माध्यम से जाने की आवश्यकता है जो उचित डीबी सत्र, सुरक्षा जांच इत्यादि को तारित करे। हालांकि मैं आमतौर पर अपने डोमेन से सीधे एमवीसी परत तक मूल्य वस्तुओं का खुलासा करता हूं। इसके अलावा पढ़ने बनाम लिखने के मॉडल (सीक्यूएस) के बीच एक साफ अलगाव होने से यह व्यवस्थित रखने में मदद मिलती है। – Ryan

+0

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

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