2010-03-25 16 views
6

क्या EJB3 का उपयोग करते समय प्रतिनिधि बनाने का कोई कारण है? क्योंकि प्रतिनिधि से मुझे एकमात्र असली लाभ यह है कि यह लुकअप को छुपाने और ईजेबी आर्किटेक्चर के विवरण तक पहुंचने की अनुमति देता है। वैसे यह कुछ decoupling भी प्रदान करता है लेकिन यह ज्यादातर अप्रयुक्त है, imho। ईजेबी 3 के साथ हमारे पास इंजेक्शन है इसलिए अब मैं @EJB एनोटेशन के साथ एक चर बना सकता हूं और इसका उपयोग कर सकता हूं। क्या मुझे अभी भी प्रतिनिधियों की आवश्यकता है? क्या यह इंजेक्शन संसाधन उपभोग कर रहा है? मेरा मतलब है कि अगर मैं जेएसएफ के अनुरोध में इसका उपयोग करता हूं तो प्रबंधित बीन्स इन इंजेक्शन कॉल को कम करने के लिए प्रतिनिधियों का उपयोग करना अभी भी बेहतर हो सकता है?ईजेबी 3 बिजनेस प्रतिनिधि

धन्यवाद!

+0

आपको "सेवा लोकेटर" और "व्यापार प्रतिनिधि" के बीच उलझन में लग रहा है - जैसा कि नीचे दिए गए उत्तर से पता चलता है, सभी जेएनडीआई उपयोग के सार के मुकाबले बिजनेस प्रतिनिधि के लिए अलग-अलग कारण हैं और प्रारंभिक संदर्भ निर्माण की जटिलताओं को छिपाने के लिए, ईजेबी होम वस्तु लुकअप आदि –

उत्तर

7

आइए संक्षिप्त बलों मूल business delegate pattern की:

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

इन सभी बलों आज भी प्रासंगिक हैं - वे हर परियोजना में आवश्यक मौजूद नहीं हैं, लेकिन सकता है

मुख्य परिवर्तन यह है कि हमें युग्मन को कम करने के लिए व्यापार प्रतिनिधि की आवश्यकता नहीं है (इटालिक में से एक)। निर्भरता इंजेक्शन ने लुकअप और एक्सेस की समस्या हल की।

मुझे analysis from Adam Bien पसंद है: युग्मन के बारे में एक बिंदु जो अभी भी स्वाभाविक रूप से हल नहीं हुआ है अपवाद है। अपवाद अब अनचेक हैं, लेकिन अभी भी मौजूद हैं। क्या ग्राहक को ईजेबी अपवादों से पूरी तरह से संरक्षित किया जाना चाहिए या परियोजना में मौजूद बलों पर फिर से निर्भर नहीं है।

मामले में व्यापार प्रतिनिधि पैटर्न को लुकअप और एक्सेस (जो मुझे संदेह है कि बहुत सारी परियोजना के मामले में) की समस्या को हल करने के लिए पेश किया गया था, हम प्रभावी रूप से इसकी आवश्यकता नहीं है। यदि व्यापार प्रतिनिधि अन्य कारणों से था, तो यह अभी भी समझ में आता है।

पुनश्च: मेरे अपने अनुभव से, संसाधन इंजेक्शन कभी नहीं एक प्रदर्शन समस्या थी (मैं हमेशा एक और अधिक गंभीर प्रदर्शन मुद्दा मिलीसेकंड इंजेक्शन :)

1

व्यापार प्रतिनिधियों के लिए ले जाया से कहीं और था सिर्फ एक को छिपाने के लिए हैक थे जेएनडीआई लुकअप और सभी संबंधित सफाई और त्रुटि पकड़ने के साथ पूरी तरह से झुकाव। संसाधन इंजेक्शन जेविनई में गेविन किंग्स सीम के माध्यम से आया था जो मूल रूप से कुछ-परतों के रूप में संभव है और सभी कॉन्फ़िगरेशन एक स्थान सिद्धांत में है। तो उन पुराने पैटर्न के बारे में भूल जाओ और सामान्य ओओ सोच का उपयोग करें।

मेरा 2 सेंट।

0

अच्छा, वास्तव में मैं इन बिंदुओं को काफी समझ नहीं पा रहा हूं।

प्रेजेंटेशन-स्तरीय ग्राहकों को व्यापार सेवाओं के लिए तक पहुंच की आवश्यकता है।

जेएसएफ के मामले में प्रस्तुतिकरण स्तर बीन प्रबंधित किया गया है, है ना? यदि ऐसा है तो यह समस्या इंजेक्शन के माध्यम से हल हो जाती है। सही? इस तरह के उपकरणों, वेब ग्राहकों, और मोटी ग्राहकों के रूप में

विभिन्न ग्राहकों,, व्यापार सेवा के लिए पहुँच की आवश्यकता है।

मेरे पास डिवाइस और मोटे ग्राहक नहीं हैं। और वेब क्लाइंट क्या है? क्या यह ऊपर से वही प्रस्तुति स्तर नहीं है? यदि ऐसा है तो हमारे ऊपर उपरोक्त स्थिति है।

बिजनेस सर्विसेज एपीआई व्यावसायिक आवश्यकताओं के रूप में बदल सकते हैं।

मैं समझ नहीं पा रहा हूं कि एपीआई में बदलाव होने पर प्रतिनिधि वास्तव में कैसे मदद कर सकते हैं। खैर, ज़ाहिर है, अगर यह केवल कुछ मामूली बदलाव हैं जो आप कुछ पारित पैरामीटर के प्रकार को बदलकर या कुछ पैरामीटर के बजाय केवल कुछ फ़ील्ड का उपयोग करके संभाल सकते हैं तो यह मदद कर सकता है, लेकिन मुझे नहीं लगता कि ऐसी स्थितियां अक्सर होती हैं, और यह इतना मुश्किल नहीं है और प्रबंधित बीन या जो कुछ भी से विधि कॉल को बदलने के लिए बेहतर हो सकता है। जबकि बड़े बदलाव वैसे भी विधि कॉल बदलने की मांग करेंगे।

ग्राहकों कैशिंग व्यापार सेवा के लिए तंत्र जानकारी को लागू करने की आवश्यकता हो सकती है।

कैशिंग एक कठिन सवाल है क्योंकि मुझे नहीं पता कि कैश करना है और यह कैसे करना है :) क्या इसका मतलब यह है कि मैं कुछ चर बना सकता हूं जो कुछ परिणाम संग्रहीत करेगा और केवल यह चर होने पर ईजेबी कॉल का उपयोग करेगा पहली बार बुलाया? क्या एक प्रतिनिधि के रूप में ऐसे साझा संसाधनों के लिए यह अच्छा अभ्यास है?

यह ग्राहक और व्यापार सेवाओं के बीच नेटवर्क यातायात को कम करने के लिए वांछनीय है।

प्रतिनिधियों नेटवर्क ट्रैफ़िक को कैसे कम कर सकते हैं? वैरिएबल के साथ एक ही पद्धति के द्वारा जो कुछ मूल्यों को स्टोर करता है?

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