अॅब्स्ट्रॅक्शन आणि इनकॅप्सुलेशनमध्ये फरक

Anonim

आपण कार्यक्रम आणि कोडमध्ये वास्तविक जगातील वस्तू कार्यान्वित करण्यासाठी. दोन्ही हात हातात असताना, ते एकमेकांपेक्षा खूप भिन्न असतात. प्रत्येक पद्धत एक encapsulation असताना, तो देखील एक शून्यमनस्कता आहे. सोप्या भाषेत सांगायचे झाले तर जेव्हा आपण एक गोष्ट तयार करण्यासाठी विविध गोष्टी एकत्रित करता, तेव्हा आपण प्रत्यक्षात एक संकल्पना तयार करतो - एक गोषवारा दोन्ही तांत्रिकदृष्ट्या अविभाज्य असल्याने, त्यांना अक्षरशः काहीही मिळाले नाही. हे जवळजवळ सत्य आहे की प्रत्येक इनकॅपसुलम एक अॅब्स्ट्रक्शन आहे कारण ते दोघेही काहीतरी लपवतात, तथापि, त्यांच्यात मतभेदांचे उचित भाग आहे.

अॅब्स्ट्रॅक्शन म्हणजे काय?

अमूर्त ही एक मूलभूत OOP संकल्पना आहे जी एका ऑब्जेक्टच्या संबंधित डेटावर केंद्रित आहे आणि जे सर्वसाधारण किंवा विशिष्ट वर्तणुकीसाठी किंवा नसतील अशा सर्व अप्रासंगिक तपशीलांची लपवेल. हे पार्श्वभूमी तपशील लपविते आणि जटिलता कमी करण्यासाठी आणि कार्यक्षमतेत वाढ करण्यासाठी आवश्यक मुद्यांवर जोर देते. मूलभूतपणे, अव्यवस्था ही जटिलता व्यवस्थापित करण्यासाठी एक प्रोग्रामिंग साधन आहे. अॅब्स्ट्रॅक्शन इव्हेंटऐवजी कल्पनांवर केंद्रित आहे. हे वापरकर्त्यांना कार्यक्षमता पुरवून डिझाईन स्तरावर तपशील लपवितो. परिणामस्वरूप ऑब्जेक्टला अॅब्स्ट्रॅक्शन असेही म्हटले जाऊ शकते. प्रोग्रामर खात्री देतो की नामित संस्थेत सर्व आवश्यक पैलू असतील आणि अप्रासंगिक व्यक्तींपैकी कोणीही नाही.

चला, अमूर्तपणाचे वास्तविक जगात उदाहरण घेऊ. चला, गाडीच्या बाबतीत विचार करू या, जे या प्रकरणात आपला वाहन आहे. आपली कार दुरुस्त करण्याचा मेकॅनिक प्रयत्न करतो किंवा आपल्या कारचा एक विशिष्ट भाग म्हणूया. येथे, आपण वापरकर्ता आहात आणि आपणास आपल्या कारचे स्प्रेडशीट्समध्ये प्रवेश करू इच्छित नाही किंवा खरोखर काय तोडले आहे. आपण प्रत्यक्षात त्या गोष्टी काळजी नाही; आपण तपशील काळजी न करता आपला वाहन परत त्याच्या मूळ स्थितीत इच्छित तर, अंमलबजावणी भाग वेगळे करून आपल्याला काय हवे आहे हे आपण प्रत्यक्षात सांगितले. हे अमूर्त आहे. आपण सर्वात महत्वाच्या गोष्टीवर लक्ष केंद्रित केले आहे, जे विशिष्ट गोष्टींवर लक्ष केंद्रित करण्याऐवजी आपली कार निश्चित केली आहे.

आक्रमणे काय आहे?

एन्कॅप्सुलेशन अजून एक ओओपी संकल्पना आहे जी एका घटकाने डेटा आणि कार्ये बांधाते आणि काही घटकांपर्यंत पोहोच प्रतिबंधित करते. हे OOP चे मुख्य मूलभूत संकल्पनांपैकी एक आहे जे एका युनिट अंतर्गत डेटा आणि माहितीचे संरक्षण करते. तांत्रिक संज्ञेमध्ये, एन्कॅप्युझलेशन म्हणजे बाह्य प्रवेशापासूनचे चलबिचल करण्यासाठी गुणधर्म लपविणे जेणेकरून अर्जाच्या एका भागात बदल केल्यास इतर भागांवर परिणाम होणार नाही. त्याउलट, माहिती अधिक उघड करून आपण डेटाचा गैरवापर करणार आहोत. हे डेटाच्या बाहेरील जगापासून संरक्षण करून मूलभूत एकात्मता प्रदान करते. सोप्या भाषेत, ते बाहेरील जगाकडून अतिरिक्त तपशील लपवते.

चला ब्लूटूथ माउसचे उदाहरण घेऊ.आपण फक्त माउसचे प्रकार कसे आहेत हे कशा प्रकारे संवेदक असतात, ते वायरलेस आहेत किंवा नाही यासारख्या अंमलबजावणीच्या तपशीलाबद्दल काळजी न करता केवळ डिव्हाइसचे वर्तन जाणून घेणे आवश्यक आहे. प्रत्येक तपशील माऊसचे वर्णन करतात परंतु तपशील काहीही असले तरीही, हे केवळ एक माउस आहे. माउसचा वापर करण्यासाठी आपल्याला फक्त इंटरफेस आवश्यक आहे, ज्यामध्ये या प्रकरणात माऊस पॉइंटर आहे. हे एन्कॅप्सिलेशन आहे.

अॅब्स्ट्रॅक्शन व एन्कॅप्जनसमध्ये फरक

जरी दोन्ही ओपीशी संबंधित मूलभूत संकल्पना आहेत आणि ते तांत्रिकदृष्ट्या अविभाज्य आहेत तरीही त्यांच्याकडे बरेच पैलू आहेत.

  1. अॅब्स्ट्रॅक्शन व इनकॅप्सुलेशनच्या "डेफिनेशन" मधील फरक - अॅब्स्ट्रॅक्शन ही एक मूलभूत ओओपी संकल्पना आहे जी एका वस्तूच्या सर्व आवश्यक घटकांवर कार्यक्षमतेत वाढ करण्यासाठी आणि जटिलता दूर करण्यासाठी अपरिचित तपशील लपवून जोर देते. दुसरीकडे, एन्कॅप्शनला एक डेटा लपवण्याची यंत्रणा आहे जी बाहेरील जगापासूनच्या प्रवेशावर मर्यादा घालण्यासाठी कॅप्सुलमध्ये डेटा आणि माहितीचे संरक्षण करते.
  2. "कार्यक्षमता" मधील अमूर्त आणि Encapsulation मधील फरक - अॅब्स्ट्रॅक्शन म्हणजे एक डेटा लपवण्याची यंत्रणा आहे ज्यात कॉम्पलेक्स प्रोग्राम सोपे करण्यासाठी फक्त आवश्यक वैशिष्ट्यांवर प्रकाश टाकला जातो, तर एनकॅप्शन, दुसरीकडे, बंधनकारक आहे एका संस्थेमध्ये डेटा आणि कोड बाह्य कार्यान्वयनाच्या तपशीलांचे संरक्षण करणे ही संकल्पना आहे.
  3. अॅब्स्ट्रॅक्शन व इनकॅप्सुलेशनच्या "अंमलबजावणी" मधील फरक - अॅब्सट्रॅक्शन्स अमूर्त वर्ग आणि इंटरफेसद्वारे अंमलात आणली जाते, तर एन्कसपूल्यूलेशन मॉडेरर्सचा उपयोग करून कार्यान्वित केले जाते. पाच प्रकारचे मॉडिफायर्सचा वापर डेटाच्या स्वरूपात केला जातो: खाजगी, सार्वजनिक, अंतर्गत, संरक्षित आणि संरक्षित अंतर्गत
  4. "संकल्पना" मधील मतभेद अॅब्स्ट्रॅक्शन व एन्कॅप्सुलेशनच्या - अमूर्त मागे जाण्याचा विचार म्हणजे कशावर तरी एन्कॅप्जनलॉलेशन कशा प्रकारे याचा अंतर्गत मेकॅनिक्स लपवतो उदाहरणार्थ, जेव्हा आपण कार चालविताना आपल्याला ब्रेक पेडल काय करते हे नक्की माहिती असते परंतु आपण त्यास संपूर्ण यंत्रणा ओळखत नाही कारण डेटा संकलित केला आहे.
  5. अॅबस्ट्रॅक्शन आणि आक्रमणाचे "उदाहरण" मधील फरक - चला स्मार्टफोनचे उदाहरण घेऊ. आपण काय करतो हे आपल्याला माहिती आहे परंतु आपण हे कशाप्रकारे करतो हे माहित नसू शकेल. त्याच्या आंतरिक सॅट्रीची काळजी करण्याऐवजी आपण केवळ प्रदर्शन स्क्रीन आणि कीपॅड बटणाची काळजी घेतली आहे. येथे, स्मार्टफोन एक अमूर्त आहे जेथे आतील कार्यान्वयन तपशील encapsulated आहेत

अमूर्त वि. तुलना सारणीसह एन्कॅप्ल्यूशन

अमूर्त Encapsulation
हे केवळ संबंधित तपशीलांशी संबंधित आहे ज्यामुळे अप्रासंगिक व्यक्तींना लपवून गुंतागुंत कमी करता येते यामुळे कार्यक्षमता वाढते. बाह्य स्रोतांपासून डेटा संरक्षित करण्यासाठी डेटा आणि माहिती एकत्र एकाच अस्तित्व मध्ये ठेवते.
हे डेटा लपविण्याचा विचार आहे जो प्रस्तुतीकरणाच्या उद्देशाने आवश्यक नाही. अवांछित प्रवेश प्रतिबंधित करण्यासाठी डेटा आणि कोड लपविला जातो.
हे कशावर तरी अवलंबून आहे हे आंतरिक मेकॅनिक लपविते की ते कशा प्रकारे काहीतरी करतात.
हे डिझाईन पातळीवर अनावश्यक तपशील लपविते. हे तपशील लपविते पण कार्यान्वयन स्तरावर
माहिती आणि डेटा संबंधित डेटा वेगळे केला जातो माहिती जवळच्या प्रवेशासाठी एका कॅप्सुलमध्ये लपवून ठेवली आहे.
इव्हेंटपेक्षा कल्पनांचा व्यवहार करतात बाहेरील जगापासूनच्या डेटाचे संरक्षण करणे ही कल्पना आहे
हे अमूर्त वर्ग आणि इंटरफेस वापरून अंमलात आणते. संरक्षित, खाजगी आणि पॅकेज-खासगी प्रवेश मॉडिफायर वापरून हे कार्यान्वित केले आहे.

सारांश < दोन्ही लपलेले डेटा संबंधित ओओपी संकल्पना असताना, ते एकमेकांपेक्षा बरेच वेगळे आहेत. अॅबस्ट्रक्शन एन्कॅप्सुलेशन सारख्या लपलेल्याशी संबंधित आहे, परंतु जेव्हा पूर्व जटिलता लपविते, नंतरचे डेटा ते त्यास ऍक्सेस करून नियंत्रित करते. अॅब्स्ट्रॅक्शन म्हणजे केवळ आवश्यक गुणधर्मांचे प्रतिनिधीत्व करणे ही अप्रासंगिक माहिती लपवून एखाद्या अनुप्रयोगाची अवघडपणा कमी करण्यासाठी वापरते ज्यामुळे कार्यक्षमता वाढते. दुसरीकडे, एन्कॅप्शनला अवांछित प्रवेशापासून माहिती संरक्षित करण्यासाठी सर्व कार्यक्रमांतर्गत सर्व आंतरिक रचना लपवण्याची संकल्पना होय. हे इतर घटकांपर्यंत पोहोच प्रतिबंधित करून एका घटकाने डेटा आणि माहिती एकत्र ठेवते. <