Razlika između apstrakcije i enkapsulacije

Apstrakcija i enkapsulacija obje su osnovne objektno orijentirane programske verzije (OOP), koje omogućuju implementaciju stvarnih objekata u kod i program. Vrlo su različiti jer oboje idu ruku pod ruku. Iako su oboje tehnički nerazdvojni, nemaju doslovno ništa zajedničko. Gotovo sva enkapsulacija je apstrakcija jer oboje nešto maskiraju, ali imaju priličan udio razlika.

Što je apstrakcija?

Apstrakcija je temeljni OOP koncept koji se usredotočuje samo na relevantne podatke o objektu i obuhvaća sve nebitne detalje koji se mogu ili ne mogu koristiti za generičko ili specijalizirano ponašanje. Maskira pozadinske detalje i naglašava ključne elemente za smanjenje složenosti i poboljšanje učinkovitosti. Pomaže u pojednostavljivanju prikaza domene. Apstrakcija je više ideja, nego događaj. Prikriva detalje na razini dizajna nudeći korisnicima funkcionalnost. Apstrakcija se također može nazvati rezultirajući objekt.

Uzmimo primjer

Stoga ćemo razmotriti motocikl Mehaničar pokušava popraviti vaš motocikl ili reći određeni dio vašeg motocikla Vi ste korisnik i ne želite znati koje su vaše motociklističke karakteristike ili koji se dio zapravo pokvario. Nije te briga; jednostavno želite svoj motocikl u izvornom stanju bez brige o detaljima. Rekli ste mehaničaru što želite odvajanjem dijela za implementaciju, to se naziva apstrakcija. Najvažnije što ste učinili je popraviti motocikl, umjesto da se fokusirate na pojedinosti.

Što je enkapsulacija?

Još jedan koncept OOP enkapsulacije veže podatke i funkcionalnosti u jednu komponentu, a ograničava se pristup određenim komponentama. Inkapsulacija će poboljšati održivost vaše aplikacije. To će korisniku pružiti veliku fleksibilnost u korištenju sustava. To olakšava cijeli postupak kodiranja, jer vas zanima samo ono što drugačija klasa ne radi. Ovo je jedan od glavnih osnovnih koncepata OOP-a, koji podatke i podatke spaja u jednu cjelinu. Daje podacima temeljnu cjelovitost braneći ga od vanjskog svijeta. Sakriva dodatne informacije iz vanjskog svijeta u jednostavnim uvjetima.

Uzmimo primjer

Samo morate znati ponašanje uređaja bez brige oko implementacije detalja poput senzora koje ima tipkovnica i je li bežični ili ne itd. Svaki detalj opisuje miš, ali to je jednostavno tipkovnica bez obzira na pojedinosti. Jednostavno imate sučelje tipkovnice, što je pokazivač miša u ovoj situaciji i to smo zvali Enkapsulacija

Usporedba između apstrakcije i enkapsulacije (Infographics)

Ispod je top 6 razlike između apstrakcije i enkapsulacije

Ključne razlike između apstrakcije i enkapsulacije

Raspravimo o nekim glavnim razlikama između apstrakcije i enkapsulacije:

Glavna razlika između apstrakcije i enkapsulacije je u tome što je problem riješen apstrakcijom na razini dizajna i razine primjene enkapsulacijom. Apstrakcija uključuje skrivanje neželjenih podataka uz istovremeno pružanje najvažnijih informacija, dok enkapsulacija podrazumijeva skrivanje koda i podataka u jednom uređaju.

Apstrakcija vam omogućuje da se usredotočite na ono što predmet radi umjesto na to, dok kapsulacija znači unutarnje detalje kako objekt radi. Kasnije ih možete izmijeniti boljom tehnikom ako unutarnje podatke održavate povjerljivim. Apstrakcija se usredotočuje na vanjsko gledanje, na primjer na pomicanje automobila dok se enkapsulacija usredotočuje na unutarnji rad ili unutarnji prikaz.

Apstrakcija je podržana u Javi s sučeljem i apstraktnom klasom, a enkapsulacija se podržava koristeći npr. Javne, privatne i sigurne sustave za modificiranje pristupa. Ovo je razdvajanje u Javi i OOP-u među enkapsulacijom i apstrakcijom. Podsjetimo da apstrakcija rješava problem u razini dizajna, a kapsulacija u razini izvršenja. Oba su za OOP programera vrlo bitna, ali to je ponekad teško objasniti. Kao što sam rekao prije, pisanje koda i čitanje kodova drugih je jedan od najboljih načina za učenje i savladavanje objektno orijentiranog programiranja.

Apstrakcija skriva implementaciju uz pomoć sučelja i apstraktne klase dok enkapsulacija skriva podatke uz pomoć gettera i settera.

Tabela usporedbe apstrakcije i enkapsulacije

Ispod je najviša usporedba između apstrakcije i kapsule:

Apstrakcija

ovijanje

Apstrakcija djeluje na razini dizajnaInkapsulacija djeluje na razini aplikacije
Apstrakcija se provodi kako bi se sakrili nepotrebni podaci i povukli relevantni podaci.Inkapsulacija je mehanizam skrivanja koda i podataka zajedno od vanjskog svijeta ili zlouporabe.
Ističe što je rad objekta, a ne način na koji objekt radiUsredotočuje se na unutarnje detalje kako objekt djeluje. Promjene se mogu učiniti kasnije u postavkama.
Apstrakcija se fokusira na vanjsko gledanje, na primjer na mijenjanje automobila.Inkapsulacija se fokusira na unutarnji rad ili unutarnji prikaz, na primjer, proizvodnju automobila.
Apstrakcija je podržana u Javi s sučeljem i apstraktnom klasomInkapsulacija se podržava pomoću npr. Javnih, privatnih i sigurnih sustava za modifikaciju pristupa.
Ukratko, apstrakcija skriva implementaciju uz pomoć sučelja i apstraktne klase.Ukratko, enkapsulacija skriva podatke uz pomoć gettera i settera.

Zaključak

U ovom smo članku vidjeli što je apstrakcija vs enkapsulaciji i razlika između njih. Iako su obje ideje za skrivanje podataka za OOP, one se međusobno prilično razlikuju. Maskira pozadinske informacije i ističe kritične informacijske točke kako bi se smanjila složenost i poboljšala učinkovitost. S novim zahtjevima, kapsulirani kôd je vrlo fleksibilan i jednostavan za promjenu.

Preporučeni članci

Ovo je vodič za glavnu razliku između apstrakcije i enkapsulacije. Ovdje također raspravljamo o ključnim razlikama Abstrakcija vs Enkapsulacija s infografikom i tablici usporedbe. Možete također pogledati sljedeće članke da biste saznali više -

  1. Što je C ++
  2. CSS vs JavaScript
  3. C vs Python
  4. Vodič za enkapsulaciju u PHP-u

Kategorija: