एक्सटेंशन तरीके के रूप में नाम का सुझाव कार्यक्षमता या लक्ष्य प्रकार की उपयोगिता फैली हुई है।
- इन तरीकों को बाद में प्रकाशित होने के बाद बाद में (संलेखन समय टाइप करने के बाद) जोड़ा जा सकता है।
- वे लोगों
- एक्सटेंशन तरीकों इंटरफेस लक्षित कर सकते हैं के विभिन्न समूह द्वारा लिखा जा सकता है।
- अलग अलग लोगों को उनकी आवश्यकताओं के अनुसार अलग ढंग से एक ही प्रकार का विस्तार कर सकते (वैकल्पिक एक आम आधार प्रकार इन तरीकों होने या उन्हें प्रत्येक प्रकार में फिर से लागू करने के लिए हो गया होता)।
विस्तार तरीकों का सही उपयोग (बजाय प्रकार परिभाषा के भीतर प्रकार की मुख्य कार्यक्षमता का ध्यान केंद्रित) वास्तविक प्रकार परिभाषा/कार्यान्वयन से ओर्थोगोनल अव्यवस्था को दूर कर सकते हैं।
LINQ का उदाहरण लें - IEnumerable
पर विस्तार विधियां प्रदान करके, यह पहले से प्रकाशित प्रकारों (और भविष्य में लिखे गए विशाल प्रकार के प्रकार) की विशाल संख्या को लक्षित कर सकता है; इसने ऑर्थोगोनल चिंता को अलग किया है जैसे वास्तविक प्रकार से पूछताछ करना।
मद # 3 उन्हें एकीकृत करने की पूरी तरह से गलत है। यह आपके 'वैकल्पिक' में वर्णित विस्तार विधियों के यांत्रिकी को पूरी तरह गलत तरीके से गलत तरीके से प्रस्तुत करता है। साथ ही, "वास्तविक प्रकार से पूछताछ" से आपका क्या मतलब है? –
@ एआर।, शायद आपको # 3 में * गलत * की व्याख्या करने की आवश्यकता है। # 3 के लिए अच्छा उदाहरण 'IEnumerable' - यदि इंटरफ़ेस एक्सटेंशन विधियों द्वारा लक्षित नहीं किया जा सकता है तो कुछ-शरीर को उन सभी विधियों के लिए विशिष्ट प्रकार (या उनके सामान्य आधार प्रकार) में कार्यान्वयन लिखना होगा। –
VinayC
@ एआर।, आगे, मैंने "ऑर्थोगोनल चिंता" शब्द को वास्तविक प्रकार से पूछताछ के रूप में "वास्तविक प्रकार से पूछताछ" शब्द का उपयोग किया था - इसका मतलब यह है कि विभिन्न संग्रह जैसे शब्दकोश, सूची, कतार, सेट, स्टैक इत्यादि नहीं है विभिन्न पूछताछ विधियों के लिए कार्यान्वयन प्रदान करना होगा (शामिल हों, गिनें, पहले, अंतिम आदि)। यह तर्क वास्तव में उन वर्गों के लिए मुख्य चिंता नहीं है। – VinayC