निर्भरता इंजेक्शन निर्भरता संकल्प के लिए वैश्विक स्थिति से बचने के लिए नियंत्रण पैटर्न के विचलन को लागू करने का एक तरीका है। आप निर्भरता-इंजेक्शन के साथ या उसके बिना नियंत्रण पैटर्न के उलटा उपयोग कर सकते हैं। हां वैश्विक चर का उपयोग नहीं कर रहे समीकरण मौसम का एक महत्वपूर्ण हिस्सा है जो आप निर्भरता-इंजेक्शन का उपयोग करते हैं या नहीं।
निर्भरता इंजेक्शन वास्तव में कुछ भी नहीं है यदि आप नीचे की शैली में एक प्रोग्राम लिखना चाहते थे जहां आवेदन के सबसे शीर्ष स्तर के हिस्से ने सभी उपप्रणाली के लिए निर्भरताओं को हल किया।
public static void main() {
World world = new World();
world.player1 = new LocalPlayer();
world.player2 = new NetworkPlayer();
world.play();
}
निर्भरता इंजेक्शन का उपयोग करते हुए बस की तरह कोड लिखने का अर्थ है: से अगर आप हाथ से ऑब्जेक्ट का निर्माण होगा यह वास्तव में कोई अलग होगा
<bean id="world" class="com.game.World" start-method="play">
<property name="player1" ref="player1"/>
<property name="player2" ref="player2"/>
</bean>
<bean id="player1" class="com.game.LocalPlayer"/>
<bean id="player2" class="com.game.NetworkPlayer/>
: मैं की तरह एक निर्भरता इंजेक्शन विन्यास के साथ एक कार्यक्रम था कहो उपरोक्त आपके लिए संभाला जाता है। इस सरल उदाहरण में आप कोड का उपयोग करने के लिए इसका उपयोग करने के लिए बहुत अधिक केस नहीं बना सकते हैं, लेकिन बड़े कार्यक्रमों में यह आपको बहुत समय बचाता है। यह आपको या टीम के सदस्यों को शॉर्टकट लेने से भी रोकता है क्योंकि जब आप कोड लिखते हैं तो यह उतना व्यापक नहीं होता है।
निर्भरता-इंजेक्शन ढांचे आपके कार्यक्रम को अनिवार्य शैली कोड से निर्भरताओं के लिए एक घोषणात्मक-शैली भाषा में बदलते हैं। तो आप इस घोषणात्मक भाषा के माध्यम से एक कार्यक्रम लिख रहे हैं और आप इसे कई अन्य सुविधाओं के साथ बढ़ा सकते हैं।
आपके लिए निर्माण और चक्र निर्भरताओं के ढांचे को हल करने की तरह सुविधाएं हैं। अपनी घोषित वस्तुओं (यानी संपत्ति फाइलें, एक्सएमएल कॉन्फ़िगरेशन इत्यादि) में बाहरी कॉन्फ़िगरेशन और मानों का इंजेक्शन घोषित करना जो वास्तव में अच्छा है। इन सभी में से एक निर्भरता इंजेक्शन ढांचे को अपने आप सब कुछ करने के लिए उपयोग करने के लिए काफी मजबूती देता है।
वह चौथा डी प्रश्न मैंने देखा है। मैंने यहां पोस्ट किया गया यह बड़ा जवाब देखें। http://stackoverflow.com/questions/5433211/difference-between- निर्भरता- इंजेक्शन-and-mocking-framework-ninject-vs-rhinomo/5433231#5433231 – gideon