2009-07-02 14 views
6

मैं अभी http://en.wikipedia.org/wiki/Domain-driven_design पढ़ रहा हूं, और मुझे केवल 2 त्वरित उदाहरणों की आवश्यकता है, इसलिए मैं समझता हूं कि 'मूल्य वस्तुएं' और 'सेवाएं' क्या हैं DDD।डोमेन संचालित डिजाइन नौसिखिया, कृपया 'मूल्य वस्तुओं' और 'सेवाओं' को संक्षिप्त रूप से समझाएं

  • मूल्य वस्तुएं: एक वस्तु जो किसी चीज़ की विशेषता का वर्णन करती है। मूल्य वस्तुओं की कोई वैचारिक पहचान नहीं है। वे आम तौर पर केवल पढ़ने के लिए ऑब्जेक्ट होते हैं और फ्लाईवेट डिज़ाइन पैटर्न का उपयोग करके साझा किए जा सकते हैं।

  • सेवाएं: जब कोई ऑपरेशन अवधारणात्मक रूप से किसी वस्तु से संबंधित नहीं होता है। समस्या के प्राकृतिक रूपों के बाद, आप इन परिचालनों को सेवाओं में कार्यान्वित कर सकते हैं। सेवा अवधारणा को GRASP में "शुद्ध फैब्रिकेशन" कहा जाता है।

मूल्य objexts: क्या कोई मुझे कृपया एक साधारण उदाहरण दे सकता है?

सेवाएं: इसलिए यदि यह कोई वस्तु/इकाई नहीं है, न ही भंडार/कारखानों से संबंधित है तो यह एक सेवा है? मुझे यह समझ में नहीं आता है।

उत्तर

7

मूल्य वस्तु का आर्किटेपिकल उदाहरण धन है। यह बहुत ही कल्पना की जा सकती है कि यदि आप एक अंतरराष्ट्रीय ई-कॉमर्स एप्लिकेशन बनाते हैं, तो आप कक्षा में 'धन' की अवधारणा को समाहित करना चाहेंगे। यह आपको मौद्रिक मूल्यों पर संचालन करने की अनुमति देगा - न केवल बुनियादी जोड़, घटाव और आगे, बल्कि संभवतः यूएसडी के बीच मुद्रा रूपांतरण और, यूरो कहता है।

इस तरह के एक मनी ऑब्जेक्ट में कोई अंतर्निहित पहचान नहीं है - इसमें आपके द्वारा लगाए गए मान होते हैं, और जब आप इसका निपटान करते हैं, तो यह चला जाता है। इसके अतिरिक्त, 10 अमरीकी डालर वाले दो मनी ऑब्जेक्ट्स को समान माना जाता है भले ही वे अलग ऑब्जेक्ट उदाहरण हों।

मूल्य वस्तुओं के अन्य उदाहरण लंबाई जैसे माप हैं, जिनमें मूल्य और इकाई हो सकती है, जैसे 9.87 किमी या 3 फीट। फिर, डेटा को बस रखने के अलावा, इस प्रकार का एक प्रकार अन्य मापों के लिए रूपांतरण विधियों की पेशकश करेगा और आगे।

दूसरी ओर, ऐसी सेवाएं हैं जो एक महत्वपूर्ण डोमेन ऑपरेशन करती हैं, लेकिन वास्तव में डोमेन की अन्य 'संज्ञा'-आधारित अवधारणाओं में अच्छी तरह फिट नहीं होती हैं। आपको जितनी संभव हो उतनी सेवाएं प्राप्त करने का प्रयास करना चाहिए, लेकिन कभी-कभी, सेवा एक महत्वपूर्ण डोमेन अवधारणा को समाहित करने का सबसे अच्छा तरीका है।

आप उत्कृष्ट पुस्तक Domain-Driven Design में वैल्यू ऑब्जेक्ट्स, सेवाओं और बहुत कुछ के बारे में अधिक पढ़ सकते हैं, जिसे मैं केवल अनुशंसा कर सकता हूं।

3

मूल्य वस्तुएं: एक सामान्य उदाहरण एक पता है। समानता वस्तु के मूल्यों पर आधारित है, इसलिए नाम, पहचान पर नहीं। इसका मतलब है कि उदाहरण के लिए 2 व्यक्तियों के ऑब्जेक्ट्स का एक ही पता होता है यदि उनके पता ऑब्जेक्ट्स के मान बराबर हैं, भले ही पता ऑब्जेक्ट मेमोरी में 2 पूरी तरह से अलग ऑब्जेक्ट्स हों या डेटाबेस में एक अलग प्राथमिक कुंजी हो।

सेवाएं: उन कार्रवाइयों की पेशकश करें जो आवश्यक डोमेन ऑब्जेक्ट से संबंधित नहीं हैं लेकिन डोमेन ऑब्जेक्ट्स पर कार्य करते हैं। एक उदाहरण के रूप में, मैं ऐसी सेवा के बारे में सोच रहा हूं जो एक ऑनलाइन दुकान में ई-मेल नोटिफिकेशन भेजता है जब उत्पाद की कीमत एक निश्चित कीमत से नीचे गिर जाती है। http://www.infoq.com/minibooks/domain-driven-design-quickly

2

कैसे मूल्य ऑब्जेक्ट्स संस्थाओं बनाम पहचान करने के लिए की This is a great example:

InfoQ DDD पर एक नि: शुल्क पुस्तक (एरिक इवान की किताब का एक सारांश) है।My other post भी एक और उदाहरण देता है।

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