अमूर्त और एन्कैप्शन के बीच अंतर

Anonim

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

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

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

चलो अमूर्त की एक वास्तविक दुनिया का उदाहरण लेते हैं। चलो एक वाहन के मामले पर विचार करें, जो इस मामले में आपका वाहन है। एक मैकेनिक आपकी गाड़ी की मरम्मत की कोशिश करता है या हम आपकी कार का एक विशिष्ट अंग कहते हैं। यहां, आप उपयोगकर्ता हैं और आप अपनी कार की बारीकियों में शामिल नहीं होना चाहते हैं या किन भाग में वास्तव में तोड़ दिया है। आप वास्तव में उन चीजों के बारे में परवाह नहीं करते हैं; आप विवरण के बारे में चिंता किए बिना अपनी गाड़ी को अपनी मूल स्थिति में वापस करना चाहते हैं। इसलिए, आपने वास्तव में मैकेनिक को बताया कि आप कार्यान्वयन के भाग को अलग करके क्या चाहते हैं। यह अमूर्त है आप सबसे महत्वपूर्ण बात पर ध्यान केंद्रित करते हैं, जो कि आपकी कार तय हो रही है, बारीकियों पर ध्यान केंद्रित करने की बजाय।

क्या है Encapsulation?

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

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

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

जबकि दोनों ओओपी से संबंधित मौलिक अवधारणा हैं और वे तकनीकी रूप से अविभाज्य हैं, वे अभी भी कई पहलुओं में अपने अंतर रखते हैं।

  1. एब्सट्रैक्शन और इनकैप्सुलेशन के "परिभाषा" में अंतर - अमूर्त एक मौलिक ओओपी अवधारणा है जो ऑब्जेक्ट के सभी आवश्यक पहलुओं पर जोर देती है जो जटिलता को बढ़ाने और जटिलता को खत्म करने के लिए अप्रासंगिक जानकारी को छिपाते हैं। दूसरी ओर, एन्कैप्सुलेशन, एक डेटा छिपाई तंत्र है जो बाहरी दुनिया से पहुंच को प्रतिबंधित करने के लिए कैप्सूल में डेटा और सूचना को लपेटता है।
  2. "कार्यशीलता" में अंतर> अमूर्त और एन्कैप्शन का - अमूर्त एक डाटा छिपाई तंत्र है जो जटिल कार्यक्रमों को आसान बनाने के लिए आवश्यक विशेषताओं को प्रकाश डालता है, जबकि दूसरी ओर, encapsulation, बाइंडिंग का एक तरीका है एक इकाई में डेटा और कोड। विचार बाहरी कार्यान्वयन से कार्यान्वयन के विवरण को ढालने के लिए है। अमूर्त और इनकैप्सुलेशन के "कार्यान्वयन" में अंतर
  3. - अमूर्त सार तत्व और इंटरफ़ेस का उपयोग करके लागू किया गया है, जबकि इनकपेशूल का प्रयोग अभिलेख संशोधक के उपयोग से किया जाता है। पांच प्रकार के संशोधक का उपयोग डेटा को समापित करने के लिए किया जाता है: निजी, सार्वजनिक, आंतरिक, संरक्षित, और संरक्षित आंतरिक। "अवधारणा" में
  4. अमूर्त और इनकैप्सुलेशन का अंतर - अमूर्त के पीछे का विचार उस पर ध्यान केंद्रित करना है जो कि कैसे पर निर्भर करता है। इनकैप्सुलेशन के आंतरिक यांत्रिकी कैसे छुपाता है उदाहरण के लिए, जब आप एक कार चलाते हैं, तो आप जानते हैं कि ब्रेक पेडल क्या करता है, लेकिन आप इसके पीछे पूरे तंत्र को नहीं जानते हैं क्योंकि डेटा समझाया गया है। एब्सट्रैक्शन और इनकैप्सुलेशन के "उदाहरण" में अंतर
  5. - चलो एक स्मार्टफोन का उदाहरण लें आप जानते हैं कि यह क्या करता है लेकिन आप नहीं जानते कि यह कैसा करता है। आप अपने आंतरिक सर्किट्री के बारे में चिंता करने की बजाए डिस्प्ले स्क्रीन और कीपैड बटनों की परवाह करते हैं। यहां, स्मार्टफोन एक सार है जहां आंतरिक कार्यान्वयन विवरण समझाया गया है। एब्स्ट्रक्शन बनाम। तुलना तालिका के साथ इनकैप्लीज़न

एब्स्ट्रक्शन

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