यहां आईडीकी का उपयोग करने का क्या महत्व है?आईडीआईआर <स्ट्रिंग, स्ट्रिंग> बनाम शब्दकोश <स्ट्रिंग, स्ट्रिंग>
उत्तर
इंटरफ़ेस का उपयोग करने का मूल्य हमेशा समान होता है: किसी अन्य बैकएंड कार्यान्वयन पर स्विच करते समय आपको क्लाइंट कोड बदलने की आवश्यकता नहीं होती है।
ध्यान रखें कि आपकी कोड रूपरेखा बाद में पता चलता है कि एक हैश तालिका कार्यान्वयन (Dictionary
वर्ग में प्रयुक्त) अपने कार्य के लिए और एक द्विआधारी खोज वृक्ष में बेहतर प्रदर्शन होता है कि उचित नहीं है। यदि आपने इंटरफ़ेस को कोड किया है तो कार्यान्वयन स्विच करना सरल है। यदि, हालांकि, आपने एक ठोस वर्ग का उपयोग किया है, तो आपको बहुत अधिक जगहों पर बहुत अधिक कोड बदलना होगा। => यह समय और पैसा खर्च करता है।
आईडीिज़र लूसर युग्मन सक्षम बनाता है।
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);
अपने पिछले प्रश्न Class inherits generic dictionary<string, IFoo>
and Interface और जवाब में चर्चा के आधार पर, मेरा अनुमान है कि आप उपयोग करने के बजाय विरासत के बारे में अधिक पूछना।
शब्दकोश से कार्यान्वित करना ठीक है अगर शब्दकोश के साथ आपका खुशहाल लागू किया गया है। यदि आप कुछ बदलना चाहते हैं, तो IDictionary को कार्यान्वित करना बेहतर है।
IMHO यदि आप किसी मौजूदा सदस्य को 'नए' के साथ कवर करने जा रहे हैं तो मूल वर्ग से प्राप्त होने के बजाय इंटरफ़ेस को कार्यान्वित करना बेहतर है।
- 1. आईडीआईआर <स्ट्रिंग, स्ट्रिंग> या नाम वैल्यू कोलेक्शन
- 2. कन्वर्ट शब्दकोश <स्ट्रिंग, स्ट्रिंग>
- 3. लिंक एक आईनेमरेबल <शब्दकोश <स्ट्रिंग, स्ट्रिंग >>
- 4. स्ट्रिंग डिक्शनरी बनाम <स्ट्रिंग, स्ट्रिंग>
- 5. मैं एक शब्दकोश <स्ट्रिंग, शब्दकोश <स्ट्रिंग, स्ट्रिंग >> क्यों नहीं बना सकता?
- 6. java.util.Properties बनाम java.util.Map <स्ट्रिंग, स्ट्रिंग>
- 7. जावा शब्दकोश <स्ट्रिंग, सूची <Object>>
- 8. सी # कन्वर्ट सूची <string> शब्दकोश में <स्ट्रिंग, स्ट्रिंग>
- 9. मैश <स्ट्रिंग, स्ट्रिंग>
- 10. स्ट्रिंग [] बनाम सूची <string> सी #
- 11. एक शब्दकोश सहेजना <स्ट्रिंग, Int32> सी # में - सीरियलाइजेशन?
- 12. शब्दकोश कन्वर्ट <स्ट्रिंग, ऑब्जेक्ट> बेनामी ऑब्जेक्ट में?
- 13. जेपीए मानचित्र <स्ट्रिंग, स्ट्रिंग> मैपिंग
- 14. deserialize KeyValuePair <स्ट्रिंग, स्ट्रिंग> Json.Net
- 15. सी # में बुलाए गए पैरामीटर की पैरामीटर की आईडीआईआर <स्ट्रिंग, ऑब्जेक्ट> कैसे प्राप्त करें?
- 16. IDictionary <स्ट्रिंग, स्ट्रिंग> कुंजी को लोअरकेस (सी #)
- 17. सी # में सूची <टपल <स्ट्रिंग, स्ट्रिंग >> में एक स्ट्रिंग खोज कैसे
- 18. अपनी खुद की सूची बनाएं <स्ट्रिंग, स्ट्रिंग, स्ट्रिंग>
- 19. उपयोग FlurryAgent.onEvent (स्ट्रिंग eventID, नक्शा <स्ट्रिंग, स्ट्रिंग> पैरामीटर)
- 20. शब्दकोश को स्ट्रिंग करने के लिए सबसे अच्छा तरीका <स्ट्रिंग, स्ट्रिंग> एकल समेकित स्ट्रिंग प्रतिनिधित्व में?
- 21. सूची के लिए एक alterantive लिए खोज रहे हैं <KeyValuePair <स्ट्रिंग, KeyValuePair <स्ट्रिंग, स्ट्रिंग >>>
- 22. स्ट्रिंग से <T>
- 23. आईसीओलेक्शन <string> स्ट्रिंग []
- 24. पढ़ें एसक्यूएल टेबल शब्दकोश में <स्ट्रिंग, सूची <string[]>>
- 25. एक शब्दकोश को पॉप्युलेट करने का आसान तरीका <स्ट्रिंग, सूची <string>>
- 26. ईजेएस: <% = बनाम <% -
- 27. पार्स JSON शब्दकोश <स्ट्रिंग, पूर्णांक> करने के लिए स्ट्रिंग Gson
- 28. को क्रमानुसार नेट शब्दकोश <स्ट्रिंग, स्ट्रिंग> JSON कुंजी मान जोड़ी वस्तु में
- 29. शब्दकोश <String,Int> शब्दकोश को <स्ट्रिंग, SomeEnum> LINQ का उपयोग करके कनवर्ट करें?
- 30. पीएचपी: <<< ob_start बनाम
अंतर दिखाने के लिए अच्छा उदाहरण – Karan