Rozdíl mezi abstrakcí a zapouzdřením

Abstrakce vs. zapouzdření jsou oba základní koncepty objektově orientovaného programování (OOP), které umožňují implementaci reálných objektů do kódu a programu. Jsou velmi odlišné, protože oba jdou ruku v ruce. Ačkoli jsou oba technicky neoddělitelné, nemají doslova nic společného. Téměř všechna zapouzdření je abstrakce, protože oba něco maskují, ale mají spravedlivý podíl na rozdílech.

Co je to abstrakce?

Abstrakce je základní koncept OOP, který se zaměřuje pouze na relevantní data objektu a pokrývá všechny irelevantní podrobnosti, které nelze nebo nelze použít pro obecné nebo specializované chování. Maskuje detaily pozadí a zdůrazňuje základní prvky, které snižují složitost a zvyšují efektivitu. Pomáhá zjednodušit reprezentaci modelu domény. Abstrakce je více o nápadech než o událostech. Pokrývá podrobnosti na úrovni designu tím, že nabízí uživatelům funkčnost. Abstrakce může být také nazývána výsledným objektem.

Vezměme si příklad

Pojďme tedy zvážit motocykl Mechanik se pokouší opravit váš motocykl nebo říct určitou část vašeho motocyklu Jste uživatel a nechcete znát specifika vašeho motocyklu nebo to, co se vlastně zlomilo. Nestaráš se; jednoduše chcete svůj motocykl v původním stavu bez obav z detailů. Řekli jste mechanikovi, co jste chtěli, oddělením implementační části, která se nazývá abstrakce. Nejdůležitější věcí, kterou jste udělali, bylo opravit motocykl namísto soustředění se na podrobnosti.

Co je zapouzdření?

Další koncepce zapouzdření OOP spojuje data a funkce do jedné komponenty, přičemž byl zaveden omezený přístup k určitým komponentám. Zapouzdření zlepší údržbu vaší aplikace. To uživateli poskytne velkou flexibilitu při používání systému. Usnadňuje celý proces kódování, protože vás zajímá pouze to, co jiná třída nedělá. Toto je jeden z hlavních základních konceptů OOP, který obtéká data a data do jedné jednotky. Dává datům základní integritu tím, že je chrání před vnějším světem. Snadno skrývá další informace z vnějšího světa.

Vezměme si příklad

Pouze potřebujete znát chování zařízení, aniž byste se museli starat o implementaci detailů, jako jsou to, jaké senzory má klávesnice a zda je bezdrátová nebo ne atd. Každý detail popisuje myš, ale je to jednoduše klávesnice bez ohledu na detail. Máte pouze rozhraní klávesnice, což je ukazatel myši v této situaci a to jsme nazvali Zapouzdření

Srovnání hlava-hlava mezi abstrakcí vs. zapouzdření (infografika)

Níže je hlavní rozdíl 6 mezi abstrakcí a zapouzdřením

Klíčové rozdíly mezi abstrakcí a zapouzdřením

Pojďme diskutovat o některých hlavních rozdílech mezi abstrakcí a zapouzdřením:

Hlavní rozdíl mezi abstrakcí a zapouzdřením spočívá v tom, že problém je vyřešen abstrakcí na úrovni návrhu a na úrovni aplikace zapouzdřením. Abstrakce zahrnuje skrytí nežádoucích informací a poskytnutí nejdůležitějších informací, zatímco zapouzdření zahrnuje skrytí kód a informace v jednom zařízení.

Abstrakce umožňuje soustředit se na to, co položka dělá, místo toho, jak to dělá, zatímco zapouzdření znamená vnitřní podrobnosti o tom, jak objekt pracuje. Můžete ji později upravit pomocí lepší techniky, pokud vnitřní informace zachováváte důvěrné. Abstrakce se zaměřuje na vnější pohled, například na posunutí vozidla, zatímco zapouzdření se zaměřuje na vnitřní práci nebo vnitřní pohled.

Abstrakce je podporována v jazyce Java s rozhraním a abstraktní třídou a zapouzdření je podporováno např. Veřejnými, soukromými a zabezpečenými systémy modifikace přístupu. Toto je oddělení v jazyce Java a OOP mezi zapouzdřením a abstrakcí. Připomeňme, že abstrakce řeší problém v úrovni návrhu a zapouzdření v úrovni provedení. Oba pro programátora OOP jsou velmi důležité, ale někdy může být obtížné to vysvětlit. Jak jsem řekl dříve, psaní kódu a čtení kódu ostatních je jedním z nejlepších způsobů, jak se učit a ovládat objektově orientované programování.

Abstrakce skrývá implementaci pomocí rozhraní a abstraktní třídy, zatímco zapouzdření skrývá data pomocí getters a setters.

Srovnávací tabulka abstrakce vs zapouzdření

Níže je nejvyšší srovnání mezi abstrakcí a zapouzdřením:

Abstrakce

Zapouzdření

Abstrakce pracuje na úrovni návrhuZapouzdření funguje na úrovni aplikace
Abstrakce je implementována za účelem skrytí nepotřebných dat a stahování příslušných dat.Zapouzdření je mechanismus skrytí kódu a dat před vnějším světem nebo zneužitím.
Zdůrazňuje, co je práce objektu namísto toho, jak objekt fungujeZaměřuje se na vnitřní podrobnosti o tom, jak objekt funguje. Úpravy lze provést později.
Abstrakce se zaměřuje na vnější pohled, například na posunutí auta.Zapouzdření se zaměřuje na vnitřní práci nebo vnitřní pohled, například na výrobu automobilu.
Abstrakce je podporována v Javě s rozhraním a abstraktní třídouZapouzdření je podporováno např. Veřejnými, soukromými a zabezpečenými systémy modifikace přístupu.
Stručně řečeno, abstrakce skrývá implementaci pomocí rozhraní a abstraktní třídy.Stručně řečeno, zapouzdření skrývá data pomocí getterů a setterů.

Závěr

V tomto článku jsme viděli, co je Abstrakce vs. Zapouzdření a rozdíl mezi nimi. I když jsou oba OOP nápady na skrytí dat, jsou od sebe zcela odlišné. Maskuje základní informace a zdůrazňuje kritické informační body, aby se snížila složitost a zvýšila účinnost. S novými požadavky je zapouzdřený kód velmi flexibilní a snadno se mění.

Doporučené články

Toto byl průvodce největším rozdílem mezi abstrakcí a zapouzdřením. Zde diskutujeme také klíčové rozdíly Abstrakce vs Zapouzdření s infografikou a srovnávací tabulkou. Další informace naleznete také v následujících článcích -

  1. Co je C ++
  2. CSS vs JavaScript
  3. C vs Python
  4. Průvodce zapouzdřením v PHP

Kategorie: