java - Inversion of Control definition -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 28 जवाब

वसंत संदर्भ में हमने पढ़ा है:

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

क्या मैं सही ढंग से समझता हूं? निर्भरता है -

1) अन्य वस्तुएं जिनके साथ वे काम करती हैं, केवल कन्स्ट्रक्टर आर्ग्यूमेंट्स के माध्यम से, फ़ैक्टरी पद्धति के लिए तर्क

2) गुण जो ऑब्जेक्ट इंस्टेंस के बाद तैयार की गई हैं फ़ैक्टरी पद्धति से लौटा

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

निर्भरता, उस परिभाषा से, है:

  वर्ग विजेट {सार्वजनिक शून्य DoSomething () {WidgetCalculator के साथ काम करते हैं     कैलकुलेटर = नया विजेटकॉल्यूलेटर (); Int someValue = calculator.calculate (); // और इतने पर ...}}  

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

यह वह जगह है जहां उपयोगी हो जाता है इसके बजाय बनाने WidgetCalculator का एक उदाहरण, यह की आवश्यकता एक हो सकता है यह इस रूप में सरल हो सकता है:

  वर्ग विजेट {सार्वजनिक शून्य DoSomething (WidgetCalculator कैलकुलेटर) {int someValue = calculator.calculate (); // और इतने पर ...}}  

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

  वर्ग विजेट {निजी अंतिम विजेट क्लॉक्युलेटर कैलकुलेटर; सार्वजनिक विजेट (विजेट कैलकुलेटर कैलकुलेटर) {this.calculator = कैलकुलेटर; } सार्वजनिक शून्य DoSomething () {int someValue = this.calculator.calculate (); // और इतने पर ...}}  

ऐसे कई तरीके हैं जिन पर निर्भरता प्रदान की जा सकती है, लेकिन मुख्य सिद्धांत यह है कि ऑब्जेक्ट की आवश्यकता है कि निर्भरता को इसके बजाय प्रदान किया जाए निर्भरता खुद की खोज करने से।


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -