Rozdíl mezi abstrakcí a zapouzdřením
Klíčové rozdíly mezi abstrakcí a zapouzdřením
- Abstrakce zobrazuje pouze užitečná data poskytnutím nejnutnějších podrobností, zatímco Encapsulation zalamuje kód a data pro potřebné informace.
- Abstrakce je zaměřena hlavně na to, co by se mělo dělat, zatímco zapouzdření je zaměřeno na to, jak by se to mělo dělat.
- Abstrakce skryje složitost tím, že vám poskytne abstraktnější obrázek, zatímco zapouzdření skryje vnitřní práci, takže ji můžete později změnit.
- Abstrakce vám pomůže rozdělit program do mnoha nezávislých částí, zatímco zapouzdření lze snadno změnit s novými požadavky.
- Při srovnání Encapsulation vs Abstraction řeší Abstrakce problémy na úrovni návrhu, zatímco Encapsulation řeší problémy na úrovni implementace.
- Abstrakce skrývá nepodstatné detaily nalezené v kódu, zatímco Encapsulation pomáhá vývojářům snadno organizovat celý kód.

Definice abstrakce
Abstrakce je koncept OOP, který se zaměřuje pouze na relevantní data objektu. Skryje detaily pozadí a zdůrazní základní datové body pro snížení složitosti a zvýšení efektivity. Obecně uchovává pouze informace, které jsou pro daný konkrétní proces nejrelevantnější. Abstrakce metoda se zaměřuje především na myšlenku namísto skutečného fungování.
Definice zapouzdření
Zapouzdření je metoda, která koncovým uživatelům usnadňuje manipulaci se složitým systémem. Uživatel se nemusí starat o vnitřní detaily a složitosti systému. Zapouzdření je proces zabalení dat a kódu, které s daty pracují, do jediné entity. Můžete to považovat za ochranný obal, který zastavuje náhodný přístup kódu definovaného mimo tento obal.
Rozdíl mezi abstrakcí a zapouzdřením
Zde je hlavní rozdíl mezi abstrakcí a zapouzdřením:
Parametr | Abstrakce | Zapouzdření |
---|---|---|
Použij pro | Abstrakce řeší problém a problémy, které vyvstanou ve fázi návrhu. | Zapouzdření řeší problém a problém, který se objeví ve fázi implementace. |
Soustředit | Abstrakce vám umožňuje soustředit se na to, co objekt dělá, místo toho, jak to dělá | Zapouzdření vám umožňuje skrýt kód a data do jediné jednotky a zabezpečit data před vnějším světem. |
Implementace | Abstrakce můžete použít pomocí rozhraní a abstraktní třídy. | Zapouzdření můžete implementovat pomocí modifikátorů přístupu (Public, Protected & Private). |
Zaměřuje se | Zaměřte se hlavně na to, co by se mělo dělat. | Zaměřte se především na to, jak by se to mělo dělat. |
editaci videa | Během úrovně návrhu. | Během úrovně implementace. |
Proč potřebujete abstrakci?
Zde jsou hlavní důvody, proč je pro objektově orientované programování potřeba abstrakce:
- Pomáhá vám zjednodušit reprezentaci doménových modelů.
- Abstrakce skryje nepodstatné detaily nalezené v kódu.
- Abstrakce vám pomůže rozdělit program do mnoha nezávislých konceptů.
- Nabízí největší flexibilitu při používání objektů ADT (Abstract Data Type) v různých situacích
Proč potřebujete zapouzdření?
Hlavní výhody zapouzdření jsou
- Zlepšuje udržovatelnost aplikace.
- Nabízí uživateli flexibilitu pro velmi snadné používání systému
- Pomáhá vývojářům lépe organizovat kód
- Usnadňuje celkový proces kódování, protože se zabýváte pouze tím, co jiná třída dělá, nikoli tím, jak to dělá
- Tato metoda pomáhá vývojářům být více „objektivní“ a orientovat se na výsledek.
- Encapsulated Code je poměrně flexibilní a snadno se mění podle nových požadavků.
- Zapouzdření usnadňuje testování jednotek.
- Umožňuje vám to omezit spojení modulů a zvýšit soudržnost uvnitř modulu, protože všechny části jedné věci jsou zapouzdřeny na jednom místě.
- Zapouzdření vám pomůže změnit část kódu, aniž by to ovlivnilo ostatní části kódu.
- Zlepšuje čitelnost kódu aplikace
- Lepší zabezpečení a snadnější údržba aplikace
- Rozhraní zapouzdření umožňuje pouze dobře definovanou interakci.
Příklad abstrakce
Předpokládejme, že chcete vytvořit bankovní aplikaci a budete požádáni o shromáždění všech informací o vašem zákazníkovi. Existuje šance, že přijdete s následujícími informacemi o zákazníkovi.
K vytvoření bankovní aplikace však nejsou nutné všechny výše uvedené informace.
Z tohoto fondu tedy musíte vybrat pouze užitečné informace pro vaši bankovní aplikaci. Údaje jako jméno, adresa, daňové údaje atd. mají pro bankovní aplikaci smysl.
Protože jsme získali/odstranili/vybrali informace o zákaznících z většího fondu, proces se nazývá abstrakce.
Avšak tytéž informace, jakmile jsou extrahovány, mohou být použity pro širokou škálu aplikací. Můžete například použít stejná data pro nemocniční aplikaci, aplikaci pracovního portálu, vládní databázi atd. s malými nebo žádnými úpravami. Stane se tedy vašimi kmenovými daty. To je výhoda abstrakce.
Příklad zapouzdření
Vezměme si příklad mobilního zařízení. S pomocí mobilních zařízení můžete provádět různé funkce, jako je fotografování, odesílání zpráv, nahrávání videa/audia, přístup na web a mnoho dalšího.
Výše uvedené funkce jsou funkcemi většiny smartphonů. Před použitím tohoto programu však nemusíte rozumět podrobnostem vnitřního fungování těchto funkcí. Například nepotřebujete vědět, jak váš fotoaparát vypočítává gama korekci nebo identifikuje lidskou tvář na snímku. Stačí se naučit softwarové rozhraní. Toto je zapouzdření.