Rozdiel Medzi Zapuzdrením A Abstrakciou

Rozdiel Medzi Zapuzdrením A Abstrakciou
Rozdiel Medzi Zapuzdrením A Abstrakciou

Video: Rozdiel Medzi Zapuzdrením A Abstrakciou

Video: Rozdiel Medzi Zapuzdrením A Abstrakciou
Video: Вопросы на собеседовании ООП: - В чем разница между абстракцией и инкапсуляцией? 2024, November
Anonim

Zapuzdrenie vs abstrakcia

Zapuzdrenie a abstrakcia sú dva rôzne, ale súvisiace pojmy, ktoré sa nachádzajú v jazykoch OOP (Object Oriented Programming). Zapuzdrenie je koncept kombinovania údajov a správania ako jednej entity. Na druhej strane, Abstrakcia je proces prezentácie toho, ako sa entita správa / vyzerá, na rozdiel od spôsobu jej implementácie.

Čo je zapuzdrenie?

Zapuzdrenie je proces zabalenia údajov a operácií, ktoré s nimi pracujú, do jednej entity. To v podstate znamená, že na prístup k údajom by sa mali použiť určité preddefinované metódy. Inými slovami, zapuzdrené údaje nie sú priamo prístupné. Takto je zaistené zachovanie integrity údajov, pretože používateľ nemá priamy prístup k údajom a nemôže ich podľa potreby upravovať. Používatelia získajú alebo nastavia hodnoty údajov iba pomocou metód, ktoré sú používateľom verejne dostupné. Tieto metódy zvyčajne poskytujú overenie údajov, takže do polí je možné vkladať iba údaje v príslušnom formáte. Výhody zapuzdrenia sú preto trojaké. Prostredníctvom zapuzdrenia môže programátor vytvárať polia triedy iba na čítanie alebo iba na zápis. Po druhé,trieda môže mať úplnú kontrolu nad tým, čo je uložené v jej poliach. Nakoniec, používatelia triedy sa nemusia obávať toho, ako sa ukladajú jej údaje. V prostredí Java môže programátor vyhlásiť všetky premenné inštancie za súkromné a poskytnúť prístupové a prístupové metódy (ktoré sú verejné) na prístup a úpravu súkromných polí.

Čo je to Abstrakcia?

Abstrakcia je proces oddeľovania podrobností prezentácie od podrobností implementácie. To sa deje preto, aby bol vývojár odbremenený od zložitejších podrobností implementácie. Namiesto toho sa programátor môže zamerať na prezentáciu alebo podrobnosti správania entity. Jednoducho povedané, abstrakcia sa zameriava na to, ako sa dá určitá entita použiť skôr ako na to, ako sa implementuje. Abstrakcia v podstate skrýva podrobnosti implementácie, takže aj keby sa metodika implementácie časom menila, programátor by sa nemusel báť, ako by to ovplyvnilo jeho program. Systém je možné abstrahovať do niekoľkých vrstiev alebo úrovní. Napríklad nízkoúrovňové abstrakčné vrstvy odhalia hardvérové podrobnosti, zatiaľ čo vysokoúrovňové abstrakcie odhalia iba obchodnú logiku entity. Termín abstrakcia sa môže používať na označenie entity aj procesu, čo vedie k určitému zmätku. Abstrakcia ako proces znamená extrakciu podstatných detailov pri ignorovaní nepodstatných detailov položky alebo skupiny položiek, zatiaľ čo ako entita abstrakcia znamená model alebo pohľad na entitu iba so základnými detailmi. V Jave môže programátor pomocou kľúčového slova abstrakt vyhlásiť triedu za abstraktnú entitu, ktorá predstavuje základné definujúce charakteristiky entity reálneho sveta.programátor môže pomocou kľúčového slova abstrakt vyhlásiť triedu za abstraktnú entitu, ktorá predstavuje základné definujúce charakteristiky entity reálneho sveta.programátor môže pomocou kľúčového slova abstrakt vyhlásiť triedu za abstraktnú entitu, ktorá predstavuje základné definujúce charakteristiky entity reálneho sveta.

Aký je rozdiel medzi zapuzdrením a abstrakciou?

Napriek tomu, že zapuzdrenie a abstrakcia sú veľmi príbuzné pojmy, ktoré sa nachádzajú v programovacích jazykoch objektovo orientovaných, majú zásadné rozdiely. Abstrakcia je technika, ktorá nám pomáha identifikovať, čo by malo byť viditeľné a čo by sa malo skrývať. Zapuzdrenie je technika balenia informácií tak, aby zviditeľnilo, čo by malo byť viditeľné, a skrylo, čo by malo byť skryté. Inými slovami, zapuzdrenie možno označiť ako jeden krok za hranicami abstrakcie. Zatiaľ čo abstrakcia redukuje objekt reálneho sveta na jeho základné definujúce vlastnosti, zapuzdrenie rozširuje túto myšlienku modelovaním a prepojením tejto funkčnosti tejto entity.

Odporúčaná: