/ / कन्स्ट्रक्टर इंजेक्शन और निर्भरता इंजेक्शन में "इंजेक्शन" का अर्थ क्या है - निर्भरता-इंजेक्शन, कन्स्ट्रक्टर-इंजेक्शन

कन्स्ट्रक्टर इंजेक्शन और निर्भरता इंजेक्शन में "इंजेक्शन" का अर्थ क्या है - निर्भरता-इंजेक्शन, कन्स्ट्रक्टर-इंजेक्शन

मैंने निर्भरता इंजेक्शन के बारे में पढ़ा है। फिर वहां आता है

  • कन्स्ट्रक्टर इंजेक्शन,
  • गेटटर इंजेक्शन
  • सेटर इंजेक्शन
  • इंटरफेस इंजेक्शन

वे निर्भरता इंजेक्शन से अलग कैसे होते हैं या वे सभी समान हैं? क्या करना है इंजेक्शन यहाँ मतलब है? बस कक्षा में आवश्यक वस्तु / पैरामीटर दे रहे हैं? निर्माण इंजेक्शन की तरह ही आवश्यक पैरामीटर को कन्स्ट्रक्टर पैरामीटर के रूप में पास करना है? या क्या मैं कुछ न कुछ भूल रहा हूं?

उत्तर:

जवाब के लिए 3 № 1

निर्भरता इंजेक्शन एक तृतीय पक्ष द्वारा आपूर्ति करके अपनी निर्भरताओं के साथ एक वर्ग की आपूर्ति करने का कार्य है।

कन्स्ट्रक्टर इंजेक्शन का सबसे आम रूप हैनिर्भरता अन्तःक्षेपण। कन्स्ट्रक्टर इंजेक्शन क्लास के कन्स्ट्रक्टर के पैरामीटर के रूप में निर्दिष्ट करके आवश्यक निर्भरताओं की सूची को स्थैतिक रूप से परिभाषित करने का कार्य है।

सेटर इंजेक्शन (ए.के.ए. संपत्ति इंजेक्शन) और विधि इंजेक्शन (इंटरफेस इंजेक्शन के साथ विधि इंजेक्शन का विशेषज्ञता है) उपभोग करने वाले वर्ग में निर्भरता (या "इंजेक्शन") की वैकल्पिक रूप हैं।

गेटटर इंजेक्शन, मेरे ज्ञान के लिए, अस्तित्व में नहीं है। एक गेटर केवल सक्षम है पुनः प्राप्त मूल्य, नहीं सेटिंग उन्हें, जो निर्भरता की आवश्यकता है इंजेक्शन.

तो कन्स्ट्रक्टर इंजेक्शन, सेटर इंजेक्शन और इंटरफेस इंजेक्शन सभी हैं रूपों निर्भरता इंजेक्शन की। कन्स्ट्रक्टर इंजेक्शन DI का सबसे आम रूप है और यह एक कक्षा को बनाए जाने के लिए मजबूर करता है सब इसकी आवश्यक निर्भरताएं। इसलिए कन्स्ट्रक्टर इंजेक्शन डीआई का आपका पसंदीदा रूप होना चाहिए। ऐसे मामले हैं जहां विधि इंजेक्शन या संपत्ति इंजेक्शन भी समझ में आता है। किताब .NET दूसरे संस्करण में निर्भरता इंजेक्शन (मार्क सेमैन और खुद द्वारा) डीआई के इन रूपों (विशेष रूप से) के बारे में बहुत सारी जानकारी में जाता है अध्याय 4)।