मैंने खुद इसके साथ संघर्ष किया है। ऐसे मामले हैं जहां एक डीटीओ प्रेजेंटन में उपयोग करने के लिए समझ में आता है। मान लीजिए कि मैं अपने सिस्टम में कंपनियों की एक गिरावट दिखाना चाहता हूं और मुझे मूल्य को बांधने के लिए उनकी आईडी की आवश्यकता है।
खैर एक CompanyObject को लोड करने के बजाय जिसमें सदस्यता के संदर्भ हो सकते हैं या कौन जानता है कि मैं और डीटीओ को नाम और आईडी के साथ वापस भेज सकता हूं। यह एक अच्छा उपयोग है IMHO।
अब एक और उदाहरण लेते हैं। मेरे पास एक ऑब्जेक्ट है जो एक अनुमान का प्रतिनिधित्व करता है, यह अनुमान श्रम, उपकरण आदि से बना हो सकता है, इसमें बहुत सारी गणनाएं हो सकती हैं जो उपयोगकर्ता द्वारा परिभाषित की जाती हैं जो इन सभी वस्तुओं को लेते हैं और उन्हें योग करते हैं (प्रत्येक अनुमान विभिन्न प्रकारों के साथ भिन्न हो सकता है गणना के)। मुझे इस ऑब्जेक्ट को दो बार क्यों बनाना चाहिए? मैं गणनाओं पर केवल अपने UI की गणना क्यों नहीं कर सकता और उन्हें प्रदर्शित नहीं कर सकता?
मैं आमतौर पर अपने यूआई से अपने डोमेन लेयर को अलग करने के लिए डीटीओ का उपयोग नहीं करता हूं। मैं अपने डोमेन परत को एक सीमा से अलग करने के लिए उनका उपयोग करता हूं जो मेरे नियंत्रण से बाहर है। यह विचार कि कोई व्यक्ति अपने व्यावसायिक ऑब्जेक्ट में नेविगेशन जानकारी डालेगा, हास्यास्पद है, अपने व्यावसायिक ऑब्जेक्ट को दूषित न करें।
यह विचार कि कोई अपने व्यवसाय की वस्तु में सत्यापन करेगा? वैसे मैं कहता हूं कि यह अच्छी बात है। आपके व्यवसाय की वस्तुओं को मान्य करने के लिए आपके UI की एकमात्र जिम्मेदारी नहीं होनी चाहिए। आपके व्यवसाय की परत को अपना सत्यापन करना होगा।
आप यूआई जनरेशन कोड को किसी बसीन्स ऑब्जेक्ट में क्यों डालेंगे? मेरे मामले में मेरे पास अलग-अलग वस्तुएं हैं जो UI से UI कोड सेपरेटली उत्पन्न करती हैं। मेरे पास ऐसी वस्तुएं हैं जो मेरे व्यवसाय की वस्तुओं को एक्सएमएल में प्रस्तुत करती हैं, इस विचार से कि इस प्रकार के संदूषण को रोकने के लिए आपको अपनी परतों को अलग करना होगा क्योंकि मेरे लिए यह बहुत ही अलग है क्योंकि आप HTML ऑब्जेक्ट कोड को किसी व्यावसायिक ऑब्जेक्ट में क्यों डालेंगे ...
संपादित करें
जैसा कि मैं थोड़ा और अधिक सोचता हूं, ऐसे मामले हैं जहां यूआई जानकारी डोमेन परत में हो सकती है। और यह क्लाउड हो सकता है जिसे आप एक डोमेन लेयर कहते हैं, लेकिन मैंने एक मल्टी-टेनेंट एप्लिकेशन पर काम किया है, जिसमें यूआई लुक और फीलिंग और फंक्शनल वर्कफ़्लो दोनों में बहुत अलग व्यवहार था। विभिन्न कारकों पर निर्भर करता है। इस मामले में हमारे पास एक डोमेन मॉडल था जो किरायेदारों और उनके कॉन्फ़िगरेशन का प्रतिनिधित्व करता था। उनका कॉन्फ़िगरेशन UI जानकारी (उदाहरण के लिए जेनेरिक फ़ील्ड के लिए लेबल) को शामिल करने के लिए हुआ।
अगर मुझे अपनी वस्तुओं को डिजाइन करने के लिए उन्हें लगातार बनाने के लिए था, तो क्या मुझे वस्तुओं की नकल भी करनी चाहिए? ध्यान रखें यदि आप एक नया क्षेत्र जोड़ना चाहते हैं तो आपके पास इसे जोड़ने के लिए दो स्थान हैं। शायद यह एक और सवाल उठाता है अगर आपका डीडीडी का उपयोग कर रहे हैं, क्या सभी स्थायी संस्थाएं डोमेन ऑब्जेक्ट हैं? मुझे पता है कि मेरे उदाहरण में वे थे।