2010-10-03 11 views
5

मेरे पास कुछ वेब ब्राउज़र अनुप्रयोगों के सभी जावा @ ऑब्जेक्ट्स के साथ जावा ऑब्जेक्ट्स सक्षम हैं। ये सभी वस्तुएं डेटा परत में रहती हैं। क्या डेटा निरंतर वस्तुओं के रूप में इन दृढ़ता वस्तुओं का उपयोग करना सबसे अच्छा अभ्यास है?डेटा स्थानांतरण ऑब्जेक्ट्स के रूप में दृढ़ता इकाइयां

उदाहरण के लिए, अगर मैं डेटा डेटा की दुकान से दिलवाया वापस पास करना चाहते हैं, मैं सीधे लौट जाना उन हठ वस्तुओं या मैं स्वयं एक मध्यस्थ डीटीओ को डेटा की प्रतिलिपि चाहिए और इसे वापस अन्य परतों को पारित? आप किस दृष्टिकोण का सुझाव देंगे?

उत्तर

1

मैं कहूँगा कि ऐसा करना ठीक है (वास्तव में इन ORMs के लिए प्रमुख लाभ w/अनावश्यक DTOs होने ओ विभिन्न परतों में इन डोमेन वस्तुओं का उपयोग करने के लिए गए थे) यदि आप निम्नलिखित दिशा-निर्देशों का पालन करें:

  1. आप सत्र सीमाओं का विस्तार नहीं करते हैं यानी डेटाबेस से संबंधित किसी भी बदलाव को हमेशा आपके द्वारा परिभाषित डेटा एक्सेस लेयर का उपयोग करके किया जाना चाहिए और इन परतों के माध्यम से अन्य परतों में नहीं किया जाना चाहिए।
  2. किसी भी डेटा जो आपको अन्य परत (डेटा एक्सेस लेयर से ऊपर परतों जैसे बिजनेस लॉजिक लेयर और प्रेजेंटेशन लेयर के ऊपर की परतों) की आवश्यकता है, अन्यथा इन ऑब्जेक्ट्स में पूर्व-जनसंख्या है अन्यथा आपको ओआरएम व्यवहार के अनुसार अपवाद मिलेंगे।
  3. मुद्दा नहीं। में उल्लेख किया है 2
+0

+1 अच्छी तरह से कहा हल करने के लिए सत्र की सीमाओं का विस्तार करें। यह वही है कि हम उन्हें अपने उत्पाद में भी कैसे उपयोग करते हैं। –

0

मुझे निरंतरता के अतिरिक्त स्तर को एक अलग डीटीओ कक्षा में प्रतिलिपि बनाकर प्रदान किए गए अबास्ट्रक्शन के अतिरिक्त स्तर की आवश्यकता नहीं है।

1

यदि आप पूरी तरह से निश्चित हैं कि सत्र भंडारण में कोई प्रतियां समाप्त नहीं हो जाएंगी या किसी अन्य इंस्टेंस/जो भी हो, उसे जारी/माइग्रेट किया जाएगा, ऐसा करने की कोई आवश्यकता नहीं है।

यदि आपको इन ऑब्जेक्ट्स को एकाधिक सत्र/अनुरोधों पर रखने की आवश्यकता है तो यह समझ में आता है।

एक और उपयोग-मामला तब होता है जब आपको लॉगिनक और दृढ़ता परत को पूरी तरह से डीकॉपल करने की आवश्यकता होती है (यानी विभिन्न दृढ़ता परतों को स्वैप करने के लिए) तो एनोटेशन के माध्यम से युग्मन परेशानी हो सकती है।

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