2008-11-30 15 views

उत्तर

26

इंटरफ़ेस का उपयोग करने का मूल्य हमेशा समान होता है: किसी अन्य बैकएंड कार्यान्वयन पर स्विच करते समय आपको क्लाइंट कोड बदलने की आवश्यकता नहीं होती है।

ध्यान रखें कि आपकी कोड रूपरेखा बाद में पता चलता है कि एक हैश तालिका कार्यान्वयन (Dictionary वर्ग में प्रयुक्त) अपने कार्य के लिए और एक द्विआधारी खोज वृक्ष में बेहतर प्रदर्शन होता है कि उचित नहीं है। यदि आपने इंटरफ़ेस को कोड किया है तो कार्यान्वयन स्विच करना सरल है। यदि, हालांकि, आपने एक ठोस वर्ग का उपयोग किया है, तो आपको बहुत अधिक जगहों पर बहुत अधिक कोड बदलना होगा। => यह समय और पैसा खर्च करता है।

14

आईडीिज़र लूसर युग्मन सक्षम बनाता है।

void DoSomething(IDictionary<string, string> d) 
{ 
    //... 
} 

आप इस तरह इसका इस्तेमाल कर सकते हैं::

आप इस तरह एक विधि है कहो

Dictionary<string, string> a = new Dictionary<string, string>(); 
SortedDictionary<string, string> b = new SortedDictionary<string, string>(); 
DoSomething(a); 
DoSomething(b); 
+0

अंतर दिखाने के लिए अच्छा उदाहरण – Karan

1

अपने पिछले प्रश्न Class inherits generic dictionary<string, IFoo> and Interface और जवाब में चर्चा के आधार पर, मेरा अनुमान है कि आप उपयोग करने के बजाय विरासत के बारे में अधिक पूछना।

शब्दकोश से कार्यान्वित करना ठीक है अगर शब्दकोश के साथ आपका खुशहाल लागू किया गया है। यदि आप कुछ बदलना चाहते हैं, तो IDictionary को कार्यान्वित करना बेहतर है।

IMHO यदि आप किसी मौजूदा सदस्य को 'नए' के ​​साथ कवर करने जा रहे हैं तो मूल वर्ग से प्राप्त होने के बजाय इंटरफ़ेस को कार्यान्वित करना बेहतर है।

संबंधित मुद्दे