Rozdiel medzi abstrakciou a zapuzdrením
Abstrakcia verzus zapuzdrenie sú oba základné koncepty objektovo orientovaného programovania (OOP), ktoré umožňujú implementáciu reálnych objektov do kódu a programu. Sú veľmi odlišné, pretože idú ruka v ruke. Aj keď sú oba technicky neoddeliteľné, doslova nemajú nič spoločné. Takmer celá enkapsulácia je abstrakciou, pretože obaja niečo maskujú, ale majú spravodlivý podiel na rozdieloch.
Čo je to abstrakcia?
Abstrakcia je základný koncept OOP, ktorý sa zameriava iba na príslušné údaje o objekte a pokrýva všetky irelevantné podrobnosti, ktoré sa dajú alebo nemôžu použiť na všeobecné alebo špecializované správanie. Zakrýva detaily pozadia a zdôrazňuje základné prvky na zníženie zložitosti a zvýšenie efektívnosti. Pomáha zjednodušiť znázornenie modelu domény. Abstrakcia je viac o nápadoch ako o udalostiach. Poskytuje funkčnosť používateľov a pokrýva podrobnosti na úrovni dizajnu. Abstrakcia sa môže tiež nazývať výsledný objekt.
Urobme príklad
Zoberme si teda motocykel Mechanik sa pokúša opraviť váš motocykel alebo povedať nejakú časť vášho motocykla Ste užívateľ a nechcete poznať špecifiká svojho motocykla alebo to, čo sa vlastne zlomilo. Nestaráš sa; jednoducho chcete svoj motocykel v pôvodnom stave bez obáv z detailov. Mechanikovi ste povedali, čo chcete, oddelením implementačnej časti, ktorá sa nazýva abstrakcia. Najdôležitejšia vec, ktorú ste urobili, bolo opraviť váš motocykel namiesto zamerania sa na podrobnosti.
Čo je to zapuzdrenie?
Ďalšia koncepcia zapuzdrenia OOP spája údaje a funkcionality do jedného komponentu, zatiaľ čo bol zavedený obmedzený prístup k určitým komponentom. Zapuzdrenie zlepší udržiavateľnosť vašej aplikácie. Používateľovi sa tým poskytne veľká flexibilita pri používaní systému. Uľahčuje to celý proces kódovania, pretože vás zaujíma iba to, čo iná trieda nerobí. Toto je jeden z hlavných základných konceptov OOP, ktorý obaluje dáta a dáta do jednej jednotky. Dáva základným údajom integritu tým, že ich chráni pred vonkajším svetom. Ľahko skrýva ďalšie informácie z vonkajšieho sveta.
Urobme príklad
Iba potrebujete poznať správanie zariadenia bez toho, aby ste sa museli starať o implementáciu detailov, ako sú to, aké senzory má klávesnica a či je bezdrôtový alebo nie atď. Každý detail popisuje myš, ale je to jednoducho klávesnica bez ohľadu na detail. Máte iba klávesnicové rozhranie, ktoré je ukazovateľom myši v tejto situácii a toto sme nazvali Zapuzdrenie
Porovnanie medzi hlavami medzi abstrakciou a zapuzdrením (infografika)
Nižšie je uvedený 6 najlepších rozdielov medzi abstrakciou a zapuzdrením
Kľúčové rozdiely medzi abstrakciou a zapuzdrením
Poďme diskutovať o niektorých hlavných rozdieloch medzi abstrakciou a zapuzdrením:
Hlavný rozdiel medzi abstrakciou a zapuzdrením je v tom, že problém je vyriešený abstrakciou na úrovni návrhu a úrovňou aplikácie zapuzdrením. Abstrakcia zahŕňa skrytie nežiaducich informácií pri poskytovaní najdôležitejších informácií, zatiaľ čo zapuzdrenie znamená skrytie kódu a informácií v jednom zariadení.
Abstrakcia vám umožňuje zamerať sa na to, čo položka robí, namiesto toho, ako to robí, zatiaľ čo zapuzdrenie znamená vnútorné podrobnosti o tom, ako objekt pracuje. Ak si zachováte dôvernosť vnútorných informácií, môžete ich neskôr vylepšiť lepšou technikou. Abstrakcia sa zameriava na vonkajšie sledovanie, napríklad na radenie automobilu, zatiaľ čo zapuzdrenie sa zameriava na vnútorné pracovné alebo vnútorné pozorovanie.
Abstrakcia je podporovaná v jazyku Java s rozhraním a abstraktnou triedou a zapuzdrenie je podporované napríklad pomocou verejných, súkromných a bezpečných systémov modifikácie prístupu. Toto je oddelenie Java a OOP medzi zapuzdrením a abstrakciou. Pripomeňme, že abstrakcia rieši problém na úrovni návrhu a zapuzdrenie na úrovni vykonávania. Obaja pre OOP programátora sú veľmi dôležité, ale niekedy môže byť ťažké vysvetliť to. Ako som už povedal, písanie kódu a čítanie kódu ostatných je jedným z najlepších spôsobov, ako sa učiť a ovládať objektovo orientované programovanie.
Abstrakcia skrýva implementáciu pomocou rozhrania a abstraktnej triedy, zatiaľ čo zapuzdrenie skrýva dáta pomocou getrov a nastavovačov.
Porovnávacia tabuľka abstrakcie vs zapuzdrenia
Nižšie je uvedené najvyššie porovnanie medzi abstrakciou a zapuzdrením:
abstrakcie |
zapuzdrenie |
Abstrakčné práce na projektovej úrovni | Zapuzdrenie funguje na úrovni aplikácie |
Uskutočňuje sa abstrakcia s cieľom skryť nepotrebné údaje a stiahnuť príslušné údaje. | Zapuzdrenie je mechanizmus skrývania kódu a údajov pred vonkajším svetom alebo pred zneužitím. |
Zdôrazňuje, čo je práca objektu namiesto toho, ako objekt funguje | Zameriava sa na vnútorné podrobnosti o tom, ako objekt funguje. Úpravy je možné vykonať neskôr. |
Abstrakcia sa zameriava na vonkajšie pozorovanie, napríklad na radenie auta. | Zapuzdrenie sa zameriava na vnútorné opracovanie alebo vnútorné prezeranie, napríklad na výrobu automobilu. |
Abstrakcia je podporovaná v Java s rozhraním a abstraktnou triedou | Zapuzdrenie je podporované napríklad pomocou verejných, súkromných a bezpečných systémov modifikácie prístupu. |
Stručne povedané, abstrakcia skrýva implementáciu pomocou rozhrania a abstraktnej triedy. | Stručne povedané, zapuzdrenie skrýva dáta pomocou getrov a nastavovačov. |
záver
V tomto článku sme videli, čo je abstrakcia verzus zapuzdrenie a rozdiel medzi nimi. Aj keď sú oba OOP nápady na skrytie dát, sú od seba celkom odlišné. Zakrýva základné informácie a zdôrazňuje kritické informačné body, aby sa znížila zložitosť a zvýšila sa účinnosť. Pri nových požiadavkách je zapuzdrený kód veľmi flexibilný a ľahko sa mení.
Odporúčané články
Toto bol návod na najväčší rozdiel medzi abstrakciou a zapuzdrením. Tu diskutujeme aj kľúčové rozdiely abstrakcie verzus zapuzdrenie s infografikou a porovnávaciu tabuľku. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- Čo je C ++
- CSS vs JavaScript
- C verzus Python
- Sprievodca zapuzdrením v PHP