Az absztrakció és az inkapsuláció közötti különbség Különbség

Anonim

valós valós idejű objektumokat valósít meg programokba és kódokká. Míg mindketten kéz a kézben járnak, nagyon különböznek egymástól. Bár minden módszer egy kapszulázás, ez is absztrakció. Egyszerűen, ha különböző dolgokat teszel össze egy entitás létrehozásához, valójában egy koncepciót hozsz létre - absztrakt. Míg mindkettő technikailag elválaszthatatlan, szó szerint semmi közük sincs. Majdnem igaz, hogy minden kapszulázás egy absztrakció, mert mindketten elrejtenek valamit, de a különbségek méltányos aránya van.

Mi az Absztrakció?

Az absztrakció egy alapvető OOP koncepció, amely csak egy releváns adatra összpontosít, és elrejti az irreleváns részleteket, amelyek általános vagy speciális viselkedéshez vezethetnek vagy nem. A háttérben részleteket rejt, és hangsúlyozza a lényeges pontokat a komplexitás csökkentése és a hatékonyság növelése érdekében. Alapvetően az absztrakció egy programozási eszköz a komplexitás kezelésére. Az absztrakció inkább az ötletekre koncentrál, mint az eseményekre. Elrejti a tervezési szint részleteit, mivel a felhasználók számára funkcionalitást biztosít. Az eredményül kapott objektum absztrakciónak is nevezhető. A programozó gondoskodik róla, hogy a megnevezett entitás tartalmazza az összes lényeges szempontot, és ne legyen semmi lényegtelen.

Vegyünk egy valós példát az absztrakcióról. Tekintsük a jármű esetét, amely ebben az esetben a járműve. A szerelő megpróbálja kijavítani az autóját, vagy mondjuk az autó egy bizonyos részét. Itt te vagy a felhasználó, és nem akarod bejutni az autó sajátosságaiba, vagy hogy valójában milyen rész tört ki. Nem érdekli ezeket a dolgokat; csak azt szeretné, hogy a jármű eredeti állapotában maradjon anélkül, hogy aggódna a részletekkel kapcsolatban. Tehát tényleg elmondta a szerelőnek, hogy mit szeretne a végrehajtási rész elkülönítésével. Ez absztrakció. A legfontosabb dologra összpontosított, amely a gépkocsi javításával foglalkozik, nem pedig a sajátosságokra összpontosítva.

Mi az Encapsulation?

Az encapsulation egy újabb OOP koncepció, amely összekapcsolja az adatokat és a függvényeket egyetlen komponenssel, miközben korlátozza a hozzáférést egyes összetevőkhöz. Ez az OOP egyik legfontosabb alapfogalma, amely egyetlen egység alatt adatokat és információkat gyűjti össze. Technikai szempontból a kapszulázás azt jelenti, hogy az attribútumokat a külső hozzáféréstől a pajzsváltozókig rejtik el, így az alkalmazás egy részében bekövetkező változás nem befolyásolja a többi részt. Éppen ellenkezőleg, az információk nyitottabbá tételével Ön kockáztathatja az adatok visszaélését. Az adatok alapvető integritását biztosítja azáltal, hogy megvédi a külvilágtól. Egyszerűen elrejti az extra részleteket a külvilágtól.

Vessünk egy példát egy Bluetooth egérre.Csak annyit kell tudnia az eszköz viselkedéseiről, hogy nem gondolja a végrehajtási részleteket, mint például az érzékelő milyen egérrel rendelkezik, vezeték nélküli vagy sem, stb. Minden egyes részlet az egeret írja le, de a részletektől függetlenül ez csak egér. Csak egy interfészt kell az egér használatához, ami ebben az esetben az egérmutató. Ez kapszulázás.

Az absztrakció és az inkapsuláció közötti különbség

Míg mindkettő az OOP-hoz kapcsolódó alapfogalmak és technikailag elválaszthatatlanok, sok szempontból még mindig különböznek egymástól.

  1. Az absztrakció és a kapszulázás "definíciója" különbségek Az absztrakció egy alapvető OOP koncepció, amely egy objektum összes lényeges aspektusára helyezi a hangsúlyt azáltal, hogy elrejti az irreleváns részleteket a hatékonyság növelése és a komplexitás megszüntetése érdekében. A kapszulázás egy olyan adatblokkoló mechanizmus, amely a kapszulában tárolja az adatokat és információkat a külvilágtól való hozzáférés korlátozására.
  2. Az absztrakció és a kapszulázás "funkcionalitás" eltérései Az absztrakció egy olyan adatbillentyő, amely csak az alapvető jellemzőket emeli ki, hogy egyszerűbbé tegye a komplex programokat, míg a kapszulázás egy kötelező érvényű módszer adatokat és kódokat egyetlen egységbe. Az ötlet az, hogy megvédje a megvalósítás részleteit a külső hozzáféréstől.
  3. Az absztrakció és a kapszulázás végrehajtásának különbségei - Az absztrakció absztrakt osztály és interfész segítségével valósul meg, míg a kapszulázást a hozzáférés-módosítók használatával hajtják végre. Ötféle módosítót használnak az adatok befogadására: privát, nyilvános, belső, védett és védett belső.
  4. Különbségek az "Absztrakció és Encapsuláció" koncepciójának - Az absztrakció mögött az a gondolat, hogy inkább ahelyett, hogy hogyan és hogyan. A kapszulázás elrejti a belső mechanizmust. Például, amikor autót vezetsz, pontosan tudja, hogy mi a fékpedál, de nem tudja, hogy az egész mechanizmus mögött van, mert az adatok be vannak zárva.
  5. Különbségek az "Abstrakció és Encapsulation" példánál - Vegyünk egy példát egy okostelefonról. Tudod, hogy mit csinál, de nem tudja, hogyan csinálja, mit csinál. Csak a kijelző és a billentyűzet gombjai érdekelnek, anélkül, hogy aggódnának a belső áramkörök miatt. Itt az okostelefon absztrakt, ahol a belső végrehajtási részletek be vannak zárva.

Absztrakció / Encapsulation az összehasonlító táblával

Absztrakció Encapsulation
Ez csak a releváns részletekkel foglalkozik azáltal, hogy elhanyagolja az irrelevánsokat a komplexitás csökkentése és ezzel a hatékonyság növelése érdekében. Összekapcsolja az adatokat és az információkat egy egységbe, hogy megvédje az adatokat külső forrásokból.
Az adatok elrejtésére vonatkozó elgondolásra vonatkozik, amely nem szükséges bemutatási célokra. Elrejti az adatokat és a kódot a nem kívánt hozzáférés korlátozására.
Ez inkább arra irányul, hogy mi ahelyett, hogy hogyan. Elrejti a belső mechanikát, hogyan csinál valamit.
Elrejti a felesleges részleteket a tervezési szinten. Elrejti a részleteket is, de a megvalósítás szintjén.
Az információ és az adatok el vannak választva a vonatkozó adatoktól. Az információ rejtve van a kapszulában a közeli hozzáféréshez.
Ez inkább ötletekkel foglalkozik, mint eseményekkel. Az ötlet az adatok védelme a külvilágtól.
Ez absztrakt osztály és felület segítségével valósul meg. Ez a védett, privát és csomag-privát hozzáférés-módosítók használatával valósul meg.

Összegzés

Míg mindkettő az adatok elrejtéséhez kapcsolódó OOP fogalmak, teljesen különböznek egymástól. Az absztrakció ugyanúgy a rejtőzködésre vonatkozik, mint a kapszulázás, de míg az előbbi elrejti a komplexitást, az utóbbi megőrzi a hozzájuk rendelt adatok ellenőrzését. Az absztrakció azt a koncepciót jelenti, amely csak a szükséges jellemzőket reprezentálja azáltal, hogy az irreleváns részleteket az alkalmazás bonyolultságának csökkentése és a hatékonyság növelése révén elrejti. A kapszulázás ugyanakkor azt a koncepciót jelenti, amely elrejti a program összes belső mechanikáját, hogy megvédje az információkat a nem kívánt hozzáféréstől. Összekapcsolja az adatokat és az információkat egy komponenssel, korlátozva a többi összetevőhöz való hozzáférést.