एक शब्द: नहीं।
अधिक शब्द: निर्भरता इंजेक्शन वास्तव में यही है। यह एक ऐसा साधन है जिसके द्वारा आप उन संसाधनों को पेश करते हैं जो किसी अन्य ऑब्जेक्ट पर निर्भर करते हैं, लेकिन किसी अन्य स्रोत से जटिल विवरणों को नहीं जानना चाहिए। DI का उपयोग करने का मतलब यह नहीं है कि आपके कार्यक्रम में कुछ भी नहीं पता होना चाहिए कि किसी अन्य वस्तु को कैसे बनाया जाए; वास्तव में, मेरा मानना है कि पूरी तरह से "नए" कीवर्ड (या प्रतिबिंब-आधारित विकल्प) से बचने के लिए एक गैर-तुच्छ कार्यक्रम के लिए यह बहुत अधिक संभव है। हालाँकि, DI का मतलब यह है कि जिन वस्तुओं को यह जानने की जरूरत नहीं है कि उन जटिल वस्तुओं का निर्माण कैसे किया जाना चाहिए, जिनके लिए बहुत अधिक निर्भरता की आवश्यकता होती है, जो इस वस्तु को दूसरे के साथ जोड़ेगी, इस सभी को कसकर युग्मन ज्ञान नहीं होना चाहिए।
मैं O / O सॉफ्टवेयर डिज़ाइन, GRASP और SOLID के दो प्रमुख सिद्धांतों का अध्ययन करूंगा। जीआरएएसपी आपको ऑब्जेक्ट के उद्देश्य का अध्ययन करने के लिए कहेगा, और खुद से पूछेगा, "क्या इस ऑब्जेक्ट को इस अन्य प्रकार की नई वस्तुओं को बनाने के लिए जिम्मेदार होना चाहिए? क्या इस ऑब्जेक्ट के 'नौकरी विवरण' का हिस्सा है?" SOLID एक कदम आगे जाता है: "S" का अर्थ "सिंगल रिस्पॉन्सिबिलिटी प्रिंसिपल" है, जो स्पष्ट रूप से बताता है कि एक ऑब्जेक्ट में एक काम होना चाहिए, और यह प्रोग्राम में एकमात्र ऑब्जेक्ट होना चाहिए जो उस विशिष्ट कार्य को करता है।
इसलिए, जीआरएएसपी आम तौर पर आपको अपनी मौजूदा कक्षाओं के माध्यम से देखने के लिए प्रोत्साहित करेगा, जिसके लिए इन नई वस्तुओं का निर्माण किया जाता है, और एक ऐसी वस्तु खोजने का काम किया जाता है, जो आपके इच्छित स्तर "सामंजस्य" को बनाए रखते हुए, इस वस्तु को बनाने का कार्य फिट बैठता है। SOLID आपको बताएगा कि सामंजस्य कुंजी है; इन वस्तुओं को बनाने का कार्य कुछ कारखाने को दिया जाना चाहिए जिन्हें आपकी कक्षा में इंजेक्ट किया जाना चाहिए। मुझे लगता है कि आप पाएंगे कि जैसे-जैसे आपके कार्यक्रम की जटिलता बढ़ती जा रही है, कि इन तरीकों में से किसी का भी पालन, रिफैक्टर की इच्छा के साथ होता है, इसके परिणामस्वरूप बहुत ही समान आर्किटेक्चर होंगे।