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: How To Do Stable Diffusion LORA Training By Using Web UI On Different Models - Tested SD 1.5, SD 2.1 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 do jednej entity. Na druhej strane abstrakcia je proces prezentovania toho, ako sa entita správa/vyzerá v protiklade k tomu, ako je implementovaná.

Čo je zapuzdrenie?

Zapuzdrenie je proces zabaľovania ú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é vopred definované metódy. Inými slovami, zapuzdrené údaje nie sú priamo prístupné. To zaisťuje zachovanie integrity údajov, pretože používateľ nemôže priamo pristupovať k údajom a upravovať ich tak, ako si želá. Používatelia získajú alebo nastavia hodnoty údajov iba metódami, 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 Encapsulation sú teda trojaké. Prostredníctvom zapuzdrenia môže programátor vytvoriť polia triedy len na čítanie alebo len 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ť, ako sú jej údaje uložené. V jazyku Java môže programátor vyhlásiť všetky premenné inštancie za súkromné a poskytnúť metódy get a set (ktoré sú verejné) na prístup a úpravu súkromných polí.

Čo je abstrakcia?

Abstrakcia je proces oddelenia detailov prezentácie od detailov implementácie. Deje sa tak preto, aby bol vývojár odbremenený od zložitejších implementačných detailov. Namiesto toho sa programátor môže zamerať na prezentáciu alebo detaily správania entity. Jednoducho povedané, abstrakcia sa zameriava skôr na to, ako môže byť určitá entita použitá, než na to, ako je implementovaná. Abstrakcia v podstate skryje detaily implementácie, takže aj keď sa metodika implementácie časom zmení, programátor sa nemusí obávať, ako to ovplyvní jeho program. Systém môže byť abstrahovaný v niekoľkých vrstvách alebo úrovniach. Napríklad abstrakcie na nízkej úrovni odhalia detaily hardvéru, zatiaľ čo abstrakcia na vysokej úrovni odhalí iba obchodnú logiku entity. Termín abstrakcia sa môže použiť na označenie entity aj procesu, čo vedie k určitému zmätku. Ako proces abstrakcia znamená extrahovanie 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 len s podstatnými detailmi. V jazyku Java môže programátor použiť kľúčové slovo abstrakt na deklarovanie triedy ako abstraktnej entity, ktorá predstavuje základné definujúce charakteristiky entity skutočného sveta.

Aký je rozdiel medzi zapuzdrením a abstrakciou?

Aj keď zapuzdrenie a abstrakcia sú veľmi príbuzné pojmy, ktoré sa nachádzajú v jazykoch objektovo orientovaného programovania, majú zásadné rozdiely. Abstrakcia je technika, ktorá nám pomáha identifikovať, čo by malo byť viditeľné a čo by malo byť skryté. Zapuzdrenie je technika balenia informácií tak, že zviditeľní to, čo by malo byť viditeľné, a skryje to, čo by malo byť skryté. Inými slovami, zapuzdrenie možno identifikovať ako krok za abstrakciou. Zatiaľ čo abstrakcia redukuje objekt skutočného sveta na jeho základné definujúce charakteristiky, zapuzdrenie rozširuje túto myšlienku modelovaním a prepojením tejto funkcie danej entity.

Odporúča: