C# के संदर्भ में एनकैप्सुलेशन, किसी ऑब्जेक्ट की डेटा और व्यवहार को छिपाने की क्षमता को संदर्भित करता है जो उसके उपयोगकर्ता के लिए आवश्यक नहीं है। एनकैप्सुलेशन गुणों, विधियों और अन्य सदस्यों के एक समूह को एक इकाई या वस्तु मानने में सक्षम बनाता है।
एनकैप्सुलेशन के निम्नलिखित लाभ हैं:
- आकस्मिक भ्रष्टाचार से डेटा की सुरक्षा
- कक्षा के प्रत्येक सदस्य की कक्षा के बाहर के कोड तक पहुंच की विशिष्टता
- कोड का लचीलापन और विस्तारशीलता और जटिलता में कमी
- वस्तुओं के बीच कम युग्मन और इसलिए कोड रखरखाव में सुधार
एनकैप्सुलेशन का उपयोग किसी वर्ग के सदस्यों तक पहुंच को प्रतिबंधित करने के लिए किया जाता है ताकि किसी दिए गए वर्ग के उपयोगकर्ता को वस्तुओं में हेरफेर करने से रोका जा सके जो डिजाइनर द्वारा इरादा नहीं है। जबकि एनकैप्सुलेशन सिस्टम की समग्र कार्यप्रणाली को प्रभावित किए बिना क्लास की कार्यक्षमताओं के आंतरिक कार्यान्वयन को छुपाता है, यह क्लास को कार्यक्षमता के लिए अनुरोध करने और बदलती आवश्यकताओं के अनुरूप अपनी आंतरिक संरचना (डेटा या विधियों) को जोड़ने या संशोधित करने की अनुमति देता है।
एनकैप्सुलेशन को सूचना छुपाने के रूप में भी जाना जाता है।
C# में इनकैप्सुलेशन को ऑब्जेक्ट डेटा तक पहुंच के विभिन्न स्तरों के साथ कार्यान्वित किया जाता है जिसे निम्नलिखित एक्सेस संशोधक का उपयोग करके निर्दिष्ट किया जा सकता है:
- सार्वजनिक: कार्यक्रम में सभी कोड तक पहुंच
- निजी: केवल एक ही वर्ग के सदस्यों तक पहुंच
- संरक्षित: एक ही वर्ग और उससे प्राप्त वर्गों के सदस्यों तक पहुंच
- आंतरिक: वर्तमान असेंबली तक पहुंच
- संरक्षित आंतरिक: वर्तमान असेंबली और युक्त वर्ग से प्राप्त प्रकारों तक पहुंच
एनकैप्सुलेशन को एक कर्मचारी ऑब्जेक्ट के उदाहरण से चित्रित किया जा सकता है जो उस ऑब्जेक्ट का विवरण संग्रहीत करता है। एनकैप्सुलेशन का उपयोग करके, कर्मचारी ऑब्जेक्ट ऑब्जेक्ट का उपयोग करने के लिए आवश्यक डेटा (जैसे नाम, कर्मचारी आईडी, आदि) और तरीकों (जैसे GetSalary) को उजागर कर सकता है, जबकि इसके अप्रासंगिक फ़ील्ड और तरीकों को अन्य ऑब्जेक्ट से छिपा सकता है। ऐसी स्थिति देखना आसान है जिसमें सभी उपयोगकर्ता वेतन संबंधी जानकारी को प्रतिबंधित करते हुए किसी कर्मचारी के बारे में बुनियादी जानकारी तक पहुंच सकें।
C# एक्सेसर्स (डेटा प्राप्त करने के लिए) और म्यूटेटर (डेटा को संशोधित करने के लिए) के उपयोग के माध्यम से डेटा के एनकैप्सुलेशन की अनुमति देता है, जो निजी डेटा को सार्वजनिक किए बिना अप्रत्यक्ष रूप से हेरफेर करने में मदद करता है। निजी डेटा को C# ऑब्जेक्ट में समाहित करने और रीड-ओनली मोड या रीड-राइट मोड में एक्सेस करने के लिए प्रॉपर्टीज़ एक वैकल्पिक तंत्र है। एक्सेसर और म्यूटेटर के विपरीत, एक प्रॉपर्टी किसी ऑब्जेक्ट के "सेट" और "प्राप्त करें" मानों तक पहुंच का एकल बिंदु प्रदान करती है।
0 Comments