इनकैप्सुलेशन और एब्स्ट्रक्शन के बीच का अंतर

Anonim

Encapsulation बनाम अमूर्त

एनक्यूपलेशन और एब्स्ट्रक्शन दो अलग-अलग लेकिन संबंधित अवधारणाओं को OOP (ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग) भाषाओं में पाया गया है इनकैप्सुलेशन, एक इकाई के रूप में डेटा और व्यवहार को एकसाथ करने की अवधारणा है। दूसरी ओर, एब्स्ट्रक्शन यह प्रस्तुत करने की प्रक्रिया है कि एक इकाई कैसे व्यवहार करती है, इसके विपरीत इसका विरोध कैसे होता है?

इनकैप्सुलेशन क्या है?

इनकैप्सुलेशन डेटा और ऑपरेशन को लपेटने की प्रक्रिया है जो एक इकाई में इन पर काम करते हैं। इसका अनिवार्य रूप से मतलब है कि डेटा तक पहुंचने के लिए, कुछ पूर्वनिर्धारित तरीकों का इस्तेमाल किया जाना चाहिए। दूसरे शब्दों में, समझाए गए डेटा प्रत्यक्ष रूप से सुलभ नहीं होते हैं यह सुनिश्चित करता है कि डेटा की अखंडता को संरक्षित रखा गया है क्योंकि उपयोगकर्ता डेटा एक्सेस और संशोधित करने में असमर्थ है क्योंकि वह / वो चाहता है। उपयोगकर्ता केवल उन विधियों के माध्यम से डेटा मान प्राप्त कर सकते हैं या सेट कर सकते हैं जो उपयोगकर्ताओं के लिए सार्वजनिक रूप से उपलब्ध हैं ये विधियां आम तौर पर डेटा सत्यापन प्रदान करती हैं ताकि उचित क्षेत्रों में केवल डेटा फ़ील्ड में डालने की इजाजत हो। इसलिए, इनकैप्सुलेशन का लाभ तीन गुना है। Encapsulation के माध्यम से, प्रोग्रामर केवल पढ़ने के लिए एक कक्षा का क्षेत्र बना सकता है या केवल लिख सकता है दूसरे, एक कक्षा के अपने क्षेत्र में क्या संग्रहित है पर कुल नियंत्रण हो सकता है अंत में, एक क्लास के उपयोगकर्ताओं को चिंता करने की आवश्यकता नहीं है कि इसका डेटा कैसे संग्रहीत किया जा रहा है। जावा में, प्रोग्रामर सभी आवृत्ति चर को निजी होने के लिए घोषित कर सकता है और निजी क्षेत्रों को प्राप्त करने और संशोधित करने के लिए प्राप्त और सेट विधियों (जो कि सार्वजनिक हैं) प्रदान करते हैं।

अमूर्त क्या है?

अमूर्त क्रियान्वयन विवरण से प्रस्तुति विवरण को अलग करने की प्रक्रिया है। यह इसलिए किया जाता है कि डेवलपर अधिक जटिल कार्यान्वयन विवरणों से मुक्त हो जाए। इसके बजाय, प्रोग्रामर इकाई की प्रस्तुति या व्यवहार विवरण पर ध्यान केंद्रित कर सकता है। साधारण शब्दों में, अमूर्त यह ध्यान केंद्रित करता है कि कैसे यह कार्यान्वित किए जाने के बजाय एक विशेष इकाई का उपयोग किया जा सकता है। एब्स्ट्रक्शन अनिवार्य रूप से कार्यान्वयन के विवरण को छुपाता है, ताकि अगर क्रियान्वयन पद्धति समय के साथ बदलती हो, तो प्रोग्रामर को चिंता करने की आवश्यकता नहीं होगी कि वह अपने कार्यक्रम को कैसे प्रभावित करेगा। एक प्रणाली को कई परतों या स्तरों में समझा जा सकता है उदाहरण के लिए, निम्न-स्तर की अमूर्त परतें हार्डवेयर विवरण प्रकट करेंगे, जबकि उच्च स्तरीय अमूर्त केवल इकाई के व्यावसायिक तर्क को प्रदर्शित करेगा। शब्द निकास का उपयोग किसी इकाई और प्रक्रिया दोनों को संदर्भित करने के लिए किया जा सकता है और यह कुछ भ्रम की ओर जाता है। एक प्रक्रिया के रूप में, अमूर्त का अर्थ किसी वस्तु या वस्तुओं के समूह के अनावश्यक विवरणों को अनदेखा करते हुए आवश्यक विवरणों को निकालने का मतलब है, जबकि एक इकाई के रूप में, अमूर्त का अर्थ केवल एक मॉडल या किसी आवश्यक दृश्य के साथ एक इकाई का दृश्य है।जावा में, प्रोग्रामर एक अमूर्त इकाई के रूप में एक कक्षा को घोषित करने के लिए कीवर्ड सार का उपयोग कर सकते हैं, जो कि वास्तविक दुनिया इकाई की आवश्यक परिभाषा को दर्शाता है।

-3 ->

इनकैप्सुलेशन और एब्स्ट्रक्शन के बीच अंतर क्या है?

यद्यपि ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषाओं में पाए गए इनकैप्सुलेशन और एब्स्ट्रक्शन अत्यधिक संबंधित अवधारणा हैं, उनके पास महत्वपूर्ण अंतर है अमूर्त एक तकनीक है, जिससे हमें पता चलता है कि क्या दिखना चाहिए और क्या छिपाया जाना चाहिए। इनकैप्सुलेशन ऐसी जानकारी पैकेजिंग की तकनीक है, जिससे वह दृश्यमान हो और क्या छिपाया जाना चाहिए छुपाता दिखाई देता है। दूसरे शब्दों में, इनकैप्सुलेशन को पहचाना जा सकता है जैसे कि अमूर्तता से परे एक कदम। जबकि अमूर्त को अपनी आवश्यक व्याख्यात्मक विशेषताओं के लिए एक वास्तविक दुनिया वस्तु कम कर देता है, तो एनकैप्सुलेशन इस विचार को उस इकाई की इस कार्यक्षमता को मॉडलिंग और जोड़ने से बढ़ाता है।