Razlika između enkapsulacije i apstrakcije

Razlika između enkapsulacije i apstrakcije
Razlika između enkapsulacije i apstrakcije

Video: Razlika između enkapsulacije i apstrakcije

Video: Razlika između enkapsulacije i apstrakcije
Video: RAZLIKA IZMEĐU WORDPRESS STRANICE I POSTA-KAKO NAPRAVITI WEB STRANICU 2024, Srpanj
Anonim

Enkapsulacija vs apstrakcija

Enkapsulacija i apstrakcija dva su različita, ali povezana koncepta koja se nalaze u OOP (Object Oriented Programming) jezicima. Enkapsulacija je koncept kombiniranja podataka i ponašanja zajedno kao jedinstvenog entiteta. S druge strane, apstrakcija je proces predstavljanja kako se entitet ponaša\izgleda za razliku od toga kako je implementiran.

Što je enkapsulacija?

Enkapsulacija je proces omatanja podataka i operacija koje rade na njima u jednu cjelinu. To u biti znači da se za pristup podacima trebaju koristiti određene unaprijed definirane metode. Drugim riječima, enkapsulirani podaci nisu izravno dostupni. Time se osigurava očuvanje cjelovitosti podataka jer korisnik ne može izravno pristupiti podacima i mijenjati ih kako želi. Korisnici će dobiti ili postaviti vrijednosti podataka samo putem metoda koje su javno dostupne korisnicima. Ove metode obično omogućuju provjeru valjanosti podataka tako da je u polja dopušteno umetanje samo podataka u odgovarajućem formatu. Stoga su prednosti enkapsulacije trostruke. Kroz enkapsulaciju, programer može polja klase učiniti samo za čitanje ili samo za pisanje. Drugo, klasa može imati potpunu kontrolu nad onim što je pohranjeno u njezinim poljima. Konačno, korisnici klase ne moraju brinuti o tome kako se podaci pohranjuju. U Javi, programer može deklarirati sve varijable instance kao privatne i pružiti get i set metode (koje su javne) za pristup i izmjenu privatnih polja.

Što je apstrakcija?

Apstrakcija je proces odvajanja detalja prezentacije od detalja implementacije. To je učinjeno kako bi programer bio oslobođen složenijih detalja implementacije. Umjesto toga, programer se može usredotočiti na prezentaciju ili detalje ponašanja entiteta. Jednostavno rečeno, apstrakcija se fokusira na to kako se određeni entitet može koristiti, a ne na to kako se implementira. Apstrakcija u biti skriva detalje implementacije, tako da čak i ako se metodologija implementacije promijeni tijekom vremena, programer ne bi morao brinuti kako će to utjecati na njegov program. Sustav se može apstrahirati u nekoliko slojeva ili razina. Na primjer, slojevi apstrakcije niske razine otkrit će detalje hardvera, dok će apstrakcija visoke razine otkriti samo poslovnu logiku entiteta. Izraz apstrakcija može se koristiti za označavanje i entiteta i procesa, a to dovodi do određene zabune. Kao proces, apstrakcija znači izdvajanje bitnih detalja uz ignoriranje nebitnih detalja stavke ili grupe stavki, dok kao entitet apstrakcija znači model ili pogled na entitet sa samo bitnim detaljima. U Javi, programer može upotrijebiti ključnu riječ abstract da deklarira klasu kao apstraktni entitet, što predstavlja bitnu definirajuću karakteristiku entiteta stvarnog svijeta.

Koja je razlika između enkapsulacije i apstrakcije?

Iako su enkapsulacija i apstrakcija vrlo povezani koncepti koji se nalaze u objektno orijentiranim programskim jezicima, oni imaju ključne razlike. Apstrakcija je tehnika koja nam pomaže identificirati što treba biti vidljivo, a što skriveno. Enkapsulacija je tehnika za pakiranje informacija tako da čini vidljivim ono što bi trebalo biti vidljivo i skriva ono što bi trebalo biti skriveno. Drugim riječima, enkapsulacija se može identificirati kao korak dalje od apstrakcije. Dok apstrakcija svodi objekt stvarnog svijeta na njegove bitne definirajuće karakteristike, enkapsulacija proširuje ovu ideju modeliranjem i povezivanjem ove funkcionalnosti tog entiteta.

Preporučeni: