2012-05-01 14 views
5

डोमेन ऑब्जेक्ट्स जेपीए इकाइयों के समान हैं? यदि मेरे पास एक मूल्य वस्तु है (उदाहरण के लिए एक डॉलर बिल), मैं डेटास्टोर में एक संदर्भ वस्तु के रूप में स्टोर (या यहां तक ​​कि मुझे भी) कैसे स्टोर कर सकता हूं?डोमेन ऑब्जेक्ट्स जेपीए इकाइयों के समान हैं?

कुछ मामलों में डोमेन ऑब्जेक्ट्स की इकाइयां क्या हैं और अन्य मामलों में मूल्य वस्तुएं क्या हैं? क्या कोई मुझे इस पर एक अच्छा पेपर निर्देशित कर सकता है?

+0

हां, डोमेन जेपीए इकाइयों के समान ही हैं – James

+0

वे डोमेन ड्राइव डिज़ाइन वातावरण में नहीं हैं, क्योंकि डोमेन ऑब्जेक्ट्स 'एनीमिक' ऑब्जेक्ट्स के बजाय अधिक मजबूत होते हैं। Http://stackoverflow.com/questions/5589141/understanding-domain-objects-services –

+2

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

उत्तर

5

"डोमेन ऑब्जेक्ट" एक और वैचारिक शब्द है; "जेपीए इकाई" डोमेन ऑब्जेक्ट्स को लागू करने के लिए उपयोगी एक विशिष्ट तकनीक को संदर्भित करती है।

आम तौर पर डोमेन ऑब्जेक्ट्स आपके डोमेन में संज्ञाओं (ऑर्डर, चालान, ग्राहक इत्यादि) से मेल खाते हैं। आमतौर पर हम इन्हें शुद्ध डेटा स्थानांतरण ऑब्जेक्ट्स के बजाय डेटाबेस के करीब होने के रूप में देखते हैं। तो आप अपने डोमेन ऑब्जेक्ट्स को लागू करने के लिए उपयोग की जाने वाली कक्षाओं पर ओआरएम एनोटेशन देख सकते हैं, उदाहरण के लिए।

बहुत से लोग एक एनीमिक तरीके से डोमेन ऑब्जेक्ट्स को कार्यान्वित करते हैं - ज्यादातर ओआरएम मैपिंग वाले गुण, लेकिन डोमेन पर कोई वास्तविक तर्क स्वयं ऑब्जेक्ट नहीं करता है। उन्होंने तर्क को डोमेन सेवाओं में रखा है।

दूसरी ओर डोमेन-संचालित डिज़ाइन के समर्थकों ने डोमेन ऑब्जेक्ट्स पर तर्क डाला।

किसी भी तरह से ये आपके सिस्टम में डोमेन ऑब्जेक्ट्स हैं।

जेपीए इकाइयां कक्षाएं हैं जिन्हें आप @Entity, @Column, @ManyToOne आदि के साथ एनोटेट करते हैं। यह डोमेन ऑब्जेक्ट्स को लागू करने का एक तरीका है। जैसा कि ऊपर बताया गया है, आप ऑब्जेक्ट्स पर डोमेन तर्क डालने का निर्णय ले सकते हैं।

0

डोमेन संचालित डिजाइन के संदर्भ में, वे समान नहीं हैं। एक डोमेन ऑब्जेक्ट एक समग्र हो सकता है जिसमें संस्थाएं और मूल्य वस्तुएं हों और दृढ़ता से अनजान होना चाहिए। इस प्रकार, इसमें कोई जेपीए एनोटेशन नहीं होना चाहिए।

0

नहीं, डोमेन ऑब्जेक्ट्स समृद्ध व्यवहार वाले वस्तुएं हैं जो व्यवसाय की प्रासंगिक अवधारणा का प्रतिनिधित्व करती हैं। जेपीए इकाइयां दृढ़ता के लिए एक तकनीकी समाधान हैं।

0

डोमेन ऑब्जेक्ट्स जेपीए इकाइयों के समान हैं?

नहीं, वे नहीं हैं।

यदि मेरे पास एक मूल्य वस्तु है (उदाहरण के लिए एक डॉलर बिल), मैं डेटास्टोर में संदर्भ वस्तु के रूप में कैसे स्टोर कर सकता हूं?

मैं @Embeddable का उपयोग कर वैल्यू ऑब्जेक्ट्स को संग्रहीत करने की अनुशंसा करता हूं। वीओ को @ आईडी की आवश्यकता नहीं है, आपको केवल माता-पिता से संदर्भ होना चाहिए (वे एक ही टैबलेट में माता-पिता के रूप में संग्रहीत हैं)। संग्रह के मामले में @ElementCollection का उपयोग करें।

@Emedded मूल्य वस्तुओं हाइबरनेट में बेहतर प्रदर्शन:

  • आप की जरूरत नहीं है कार्यभार संभाला अगर आप @OneToOne उपयोग नहीं कर रहे।
  • वैल्यू ऑब्जेक्ट संग्रह को एक डेलेटी से हटाया जा सकता है और इसे हटाने से पहले लोड नहीं किया जाना चाहिए।

डोमेन वस्तुओं कुछ मामलों और अन्य मामलों में मूल्य की वस्तुओं में संस्थाओं होने का बारीकियों क्या हैं?

संस्थाओं वस्तुओं है कि विपरीत मूल्य वस्तुओं पर @Id से की जाती है, मूल्यों से की जाती है कर रहे हैं। मूल्य वस्तुओं को अक्सर अपरिवर्तनीय के रूप में लागू किया जाता है, जबकि entites/डोमेन-ऑब्जेक्ट्स में बसिननेस तर्क होता है जो इसके राज्य को बदल देता है।

कुछ व्यावसायिक मामलों में आपको डोमेन ऑब्जेक्ट का मूल्य ऑब्जेक्ट, उर्फ ​​स्नैपशॉट के रूप में प्रस्तुत करने की आवश्यकता है, उदाहरण के लिए आप उदाहरण के लिए डोमेन ईवेंट के अंदर किसी अन्य को पास या प्रकाशित करते हैं।

क्या कोई मुझे इस पर एक अच्छा पेपर निर्देशित कर सकता है?

पुस्तक: डोमेन-संचालित डिजाइन, वॉन वर्नन कार्यान्वित करना।

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