Klíčový rozdíl: abstrakce a zapouzdření jsou koncepty programování věd o počítačích. Abstrakce je proces, ve kterém jsou další charakteristiky dat odstraněny nebo odděleny od dat; zatímco zapouzdření je mechanismus, ve kterém jsou data skryta a sdružována v metodách.
Abstrakce je obecný proces, ve kterém jsou extra data odebrána a odstraněna, aby se data stala konkrétní. V počítačích je to programovací metoda, která pomáhá při konverzi dat do stručné podoby. Data a program se v této metodě nezmění, spíše jsou uchovávány ve stejné původní podobě; jediný rozdíl spočívá v tom, že jsou redukovány na menší reprezentativní formu. Abstrakce se snaží snížit a vyčíslit detaily, aby se programátor mohl soustředit na několik konceptů najednou.
Systém může mít mnoho takových vrstev abstrakcí, které mají různé významy a detaily. Například nízkoúrovňové abstrakční vrstvy vystavují detaily počítačového hardwaru, na němž program běží, zatímco vrstvy na vysoké úrovni se zabývají obchodní logikou programu. Tyto podrobnosti jsou pak vystaveny programátorovi v okamžiku provedení. Abstrakce je koncept nebo nápad, který není spojen s konkrétním příkladem. Zachycuje pouze ty detaily údajů, které se týkají jeho předmětů a současných perspektiv. Hraje důležitou roli v rodině objektů (v pojmech Object-Oriented-Programming). a používá se různými způsoby a implementacemi.
Pojetí abstrakce může být implementováno v:
- Řízení abstrakce: Jedná se o abstrakci akcí.
- Abstrakce dat: Umožňuje a zpracovává datové struktury a datové struktury smysluplným způsobem.
Zapouzdření v počítačovém programování zdůrazňuje své funkce do dvou různých zápisů:
- Jazykový mechanismus, který omezuje přístup ke komponentám některých objektů.
- Jazykový konstrukt, který usnadňuje sdružování dat s metodami (a dalšími funkcemi) pracujícími s těmito daty.
Zapouzdření je krycí mechanismus, který hraje zásadní roli při ochraně a zabezpečení dat od cizinců. Ve skutečnosti poskytuje základní integritu dat tím, že brání zneužití skutečných dat. V zapouzdření jsou data uložena a přístupná v původním platném a konzistentním formátu.
Enkapsulace obecně znamená zachování objektu od uživatele a jeho zastupování v obecné podobě. V podstatě je v zapouzdření dodatečné detaily skryty z vnějšího prostředí. Položky objektů jsou v tomto mechanismu přímo kontrolovány a manipulovány. Informace skryté spolu s vybavením jsou sestaveny ve verzi, která se dále používá jako zdrojový kód a je propojena pomocí souboru záhlaví. Někdy se veřejné třídy snaží získat přístup k datům, v těchto případech zapouzdření neumožňuje veřejným útočníkům hrát s daty. Jednou z hlavních výhod zapouzdření je, že pomáhá snižovat složitost programu a pomáhá uživatelům porozumět přesným pojmům programu, protože mechanismy představují pouze stručnou podobu programu. To zvyšuje robustnost tím, že umožňuje vývojáři nebo programátorům omezit vzájemnou závislost mezi součástmi softwaru. Zapouzdření je také použitelné v některých jazycích, jako jsou Smalltalk a Ruby, u kterých je přístup povolen pouze pomocí objektových metod; zatímco většina ostatních jako C ++, C # nebo Java nabízí určitou míru kontroly programátoru. Tyto jazyky umožňují vývojářům přístup k tomu, co je skryto pomocí klíčových slov, jako jsou veřejné a soukromé.
Abstrakce a zapouzdření jsou také hlavními základy v OOP (Object-Oriented-Programming).
Srovnání mezi abstrakcí a zapouzdřením:
Abstrakce | Zapouzdření | |
Stručný popis | Abstrakce je proces, který získává základní informace o poloze nebo skupině položek a ignoruje nepodstatné podrobnosti. | Zapouzdření je proces, který obaluje nebo uzavírá data v kapsli nebo dělá data stručnou. |
Oni jsou | Abstrakce se vztahuje k myšlence skrývání dat, která není pro prezentaci potřebná. | Zapouzdření sdružuje data a funkčnost. |
Základní funkce | V podstatě se abstrakce používá k ukrytí nežádoucích dat a poskytuje příslušná data. | V podstatě zapouzdření znamená skrýt kód a data do jedné jednotky za účelem ochrany dat před vnějším světem. |
Kdy jsou provozovány | Ovládá problém na úrovni návrhu. | Ovládá problém na úrovni implementace. |
Prospěšné pro role | Pomáhá uživateli zaměřit se na to, co objekt dělá namísto toho, jak dělá jakoukoli funkci. | Pomáhá programátorovi ukrýt vnitřní detaily nebo mechaniku toho, jak objekt něco dělá. |
Informace jsou | Zde jsou informace odděleny od skutečných dat. | Informace jsou zde zabaleny ve skrytém formátu. |
Rozvržení | To se týká vnějšího uspořádání, které se používá z hlediska návrhu. | Jedná se o vnitřní uspořádání, které se používá z hlediska implementace. |
Například | Vnější vzhled mobilního telefonu, který má displej a tlačítka na klávesnici, vytočí číslo. | Vnitřní podrobnosti implementace mobilního telefonu, jak jsou klávesnice a obrazovka displeje vzájemně propojeny pomocí obvodů. |