मेरे पास घटक है जो ग्राहक और ग्राहक पते (जेडीबीसी के माध्यम से) के लिए डेटाबेस को अद्यतन करने की आवश्यकता है। क्या ग्राहकदाओ से ग्राहक एड्रेस डीडीओ को कॉल करना उचित है? या एक अलग "ग्राहक डेटा प्रबंधक" घटक बनाएं जो उन्हें अलग से कॉल करता है?क्या डीएओ कॉल डीएओ कर सकता है?
उत्तर
आप कर सकते हैं, लेकिन इसका मतलब यह नहीं है कि आपको करना चाहिए। इन मामलों में, मैं इस मामले में एक सेवा (CustomerService
) का उपयोग करना पसंद करता हूं जिसमें एक विधि कॉल है जो डीएओ दोनों का उपयोग करता है। आप सेवा विधि के आसपास लेनदेन को परिभाषित कर सकते हैं, इसलिए यदि कोई कॉल विफल हो जाता है, तो वे दोनों वापस रोल करते हैं।
अन्य डीएओ को कॉल करने वाले डीएओ के साथ समस्या यह है कि आप सर्कुलर संदर्भों के साथ जल्दी से समाप्त हो जाएंगे। निर्भरता इंजेक्शन बहुत मुश्किल हो जाता है।
आप एक डीएओ को दूसरे से कॉल कर सकते हैं लेकिन ग्राहकदाओ में ग्राहक एड्रेस डीडीओ बनाने पर भी विचार कर सकते हैं (आखिरकार, यह ग्राहक के बारे में है और मुझे नहीं लगता कि आप ग्राहक के बिना ग्राहक पता रखना चाहते हैं)।
जाहिर है, आप इसे विभिन्न तरीकों से कर सकते हैं। लेकिन, इस सवाल का सही जवाब देने के लिए, आपको अपने मॉडल से शुरू करना चाहिए। मॉडल में, देखें कि पता एक इकाई है (अपनी आईडी के साथ कुछ और स्वतंत्र रूप से भी इस्तेमाल किया जाता है), या यह एक मूल्य प्रकार है (कुछ ऐसा जो केवल ग्राहक के संदर्भ में समझ में आता है। फिर, आपके पास दो मामले होंगे:
इस मामले में, पता अपने आप ही दाव है और ग्राहक अपने स्वयं के दाव न तो दाव एक दूसरे का उपयोग करना चाहिए है, तो वहाँ कुछ तर्क दो में हेरफेर करने की जरूरत है, तो है कि:।पता एक इकाई है। डेटा एक्सेस लेयर में नहीं, आपके आवेदन तर्क में होना चाहिए।
पता ग्राहक के साथ एक मूल्य प्रकार है: इस मामले में, पते में इसका एक अलग डीएओ नहीं है वामो। इसे ग्राहक ग्राहक के हिस्से के रूप में सहेजा/बहाल किया जा रहा है।
निष्कर्ष: यदि सही ढंग से डिज़ाइन किया गया है, तो डीएओ एक-दूसरे (मानक स्थितियों के तहत) तक नहीं पहुंचते हैं।
"यदि कुछ तर्क हैं जो दोनों को कुशल बनाने की आवश्यकता है, तो उसे आपके एप्लिकेशन तर्क में होना चाहिए, डेटा एक्सेस लेयर में नहीं।" - क्या होगा यदि इसे लेनदेन की आवश्यकता हो? (उदाहरण के लिए, मुझे यह सुनिश्चित करना होगा कि ग्राहक और पता दोनों हटा दिए गए हैं) – HEATH3N
यह एक बहुत अच्छा सवाल है! मुझे लगता है कि, उस परिदृश्य में, ग्राहक के साथ जुड़े मूल्य प्रकार के रूप में पता होना समझ में आता है। यह ग्राहक के साथ पते को एक साथ करने में मदद करता है, उदा। दोनों का विलोपन। –
- 1. एक अन्य डीएओ से एक डीएओ को बुला रहा है?
- 2. धागा या थ्रेडसेफ डीएओ प्रति एक डीएओ?
- 3. ओआरएमएलआईटी के डीएओ
- 4. डीएओ विधियों और सिंक्रनाइज़
- 5. डीएओ और सेवा?
- 6. पैटर्न (डीएओ एक्स गेटवे)
- 7. डीएओ पैकेज संरचना
- 8. क्या स्कैला में डीएओ पैटर्न अप्रचलित है?
- 9. JPA और डीएओ कार्यान्वयन
- 10. नियंत्रक/सेवाएं/डीएओ
- 11. डीएओ इकाई परीक्षण
- 12. डीएओ डिजाइन पैटर्न
- 13. स्प्रिंग रू: डीएओ
- 14. स्प्रिंग सेवा और डीएओ परत
- 15. डीएओ और निर्भरता इंजेक्शन, सलाह?
- 16. डीएओ कक्षा कैसे डिजाइन करें?
- 17. यूनिट परीक्षण डीएओ, क्या मैं इसे सही कर रहा हूं?
- 18. स्प्रिंग-हाइबरनेट डीएओ नामकरण सम्मेलन?
- 19. डीएओ पैटर्न के लिए सबसे अच्छा अभ्यास?
- 20. स्प्रिंग ढांचे में बिल्कुल डीएओ और सर्विस लेयर क्या है?
- 21. क्या कोई अच्छा सामान्य जेपीए डीएओ लागू है?
- 22. डीएओ पैटर्न और ओपन-क्लोज़ेड सिद्धांत
- 23. जेडीबीसी डीएओ - कोई अच्छा संदर्भ कार्यान्वयन?
- 24. डीएओ और सर्विस लेयर (जेपीए/हाइबरनेट + स्प्रिंग)
- 25. डीटीओ और डीएओ अवधारणाएं और एमवीसी
- 26. डीएओ और एसक्यूएल सर्वर से जुड़े लेनदेन
- 27. डीएओ पैटर्न - लेनदेन कहां फिट होते हैं?
- 28. स्कैला में डीएओ कैसे कार्यान्वित करें?
- 29. स्प्रिंग + हाइबरनेट, Autowire sessionFactory हाइबरनेट डीएओ
- 30. एंड्रॉइड प्रोजेक्ट पर डीएओ पैटर्न लागू करना
व्यापार परत में ऐसा करने से आपको क्या अवरुद्ध कर रहा है? – Andre