डेटा और व्यापार तर्क को एक साथ रखने का विचार encapsulation को बढ़ावा देना है, और अन्य वस्तुओं के लिए जितना संभव हो उतना आंतरिक आंतरिक राज्य का खुलासा करना है। इस तरह, ग्राहक एक कार्यान्वयन के बजाय एक इंटरफ़ेस पर भरोसा कर सकते हैं।"Tell, Don't Ask" सिद्धांत और Law of Demeter देखें। Encapsulation राज्यों के डेटा को समझना आसान बनाता है, कोड पढ़ने में आसान, कक्षाओं को कम करने और यूनिट परीक्षण के लिए आम तौर पर आसान है।
व्यापारिक तर्क (आमतौर पर "सेवा" या "प्रबंधक" कक्षाओं में) को "इस डेटा का उपयोग कहां किया जाता है?" और "यह किस राज्य में हो सकता है?" जवाब देने के लिए बहुत मुश्किल है। यह एक वस्तु में लपेटकर सोचने का एक प्रक्रियात्मक तरीका भी है। इससे anemic domain model हो सकता है।
बाहरी व्यवहार हमेशा बुरा नहीं होता है। उदाहरण के लिए, service layer डोमेन ऑब्जेक्ट्स को ऑर्केस्ट्रेट कर सकता है, लेकिन बिना किसी राज्य-मैनिपुलेटिंग जिम्मेदारियों को ले जा सकता है। या, जब आप ज्यादातर डीबी को पढ़ते/लिखते हैं जो रूपों को इनपुट करने के लिए अच्छी तरह से मानचित्रण करते हैं, तो शायद आपको डोमेन मॉडल की आवश्यकता नहीं है - या दर्दनाक ऑब्जेक्ट/रिलेशनल मैपिंग ओवरहेड इसमें शामिल है - बिलकुल भी।
स्थानांतरण ऑब्जेक्ट्स अक्सर किसी भी व्यावसायिक तर्क को उजागर किए बिना कॉलिंग परत की न्यूनतम राज्य जानकारी प्रदान करके एक दूसरे से (या बाहरी प्रणाली से) आर्किटेक्चरल परतों को कम करने के लिए काम करते हैं।
यह उपयोगी हो सकता है, उदाहरण के लिए जब दृश्य के लिए जानकारी की तैयारी: बस इतना है कि यह कैसे के बारे में जानकारी प्रदर्शित करने के लिए, बल्कि क्या से ध्यान केंद्रित कर सकते, इसके लिए आवश्यक जानकारी, और कुछ नहीं देखने देना प्रदर्शित करने के लिए जानकारी। उदाहरण के लिए, TO डेटा के कई स्रोतों का एकत्रीकरण हो सकता है।
एक फायदा यह है कि आपके विचार और आपके डोमेन ऑब्जेक्ट्स decoupled हैं। जेएसपी में अपने डोमेन ऑब्जेक्ट्स का उपयोग करने से आपके डोमेन को रिएक्टर करने में कठिनाई हो सकती है और गेटर्स और सेटर्स के अंधाधुंध उपयोग को बढ़ावा मिल सकता है (इसलिए encapsulation तोड़ना)।
हालांकि, वहां बहुत से स्थानांतरण ऑब्जेक्ट्स और अक्सर बहुत अधिक नकल करने के साथ जुड़े ओवरहेड भी हैं। कुछ परियोजनाएं जिन्हें मैं TO के साथ समाप्त कर रहा हूं जो मूल रूप से अन्य डोमेन ऑब्जेक्ट्स को दर्पण करता है (जिसे मैं एंटी-पैटर्न मानता हूं)।
स्रोत
2008-09-21 09:18:16
धन्यवाद :)। क्या आप कृपया 'सत्य' डोमेन ऑब्जेक्ट्स के बारे में बताएंगे? –