क्या कोई मुझे एक आईओसी कंटेनर का उपयोग करने के फायदे बता सकता है जो डिफ़ॉल्ट कार्यान्वयन में डिफ़ॉल्ट कार्यान्वयन को हार्डकोडिंग पर कर सकता है?डिफ़ॉल्ट कन्स्ट्रक्टर बनाम आईओसी कंटेनर
दूसरे शब्दों में, इस कोड के बारे में क्या गलत है?
public class MyClass
{
private IMyInterface _myInterface;
public MyClass()
{
_myInterface = new DefaultMyInterface();
}
public MyClass(IMyInterface myInterface)
{
_myInterface = myInterface;
}
}
जहां तक मेरा बता सकते हैं, इस वर्ग के निर्माता इंजेक्शन पर्याप्त तो इकाई परीक्षण और मजाक आसानी से किया जाता है का समर्थन करता है। इसके अतिरिक्त, डिफ़ॉल्ट कन्स्ट्रक्टर आईओसी कंटेनर के कम्प्यूटेशनल ओवरहेड को हटा देता है (पूरी प्रक्रिया का उल्लेख नहीं करना बहुत अधिक पारदर्शी है)।
आईओसी कंटेनर का उपयोग करने के लिए मैं केवल एक ही लाभ देख सकता हूं यदि आपको अक्सर अपने इंटरफेस के कार्यान्वयन को स्विच करने की आवश्यकता होती है। क्या मैं कुछ भूल रहा हूँ?