Kapsulacija vs apstrakcija
Inkapsulacija i apstrakcija dva su različita, ali povezana koncepta koja se nalaze u OOP (objektno orijentirano programiranje) jezicima. Inkapsulacija je koncept kombiniranja podataka i ponašanja kao jedinstvenog entiteta. S druge strane, apstrakcija je postupak prikazivanja kako se entitet ponaša / izgleda za razliku od načina na koji se provodi.
Što je kapsulacija?
Inkapsulacija je postupak umotavanja podataka i rada koji na njih djeluju u jedan entitet. To u osnovi znači da bi se za pristup podacima trebale koristiti određene unaprijed definirane metode. Drugim riječima, inkapsulirani podaci nisu izravno dostupni. To osigurava očuvanje integriteta podataka jer korisnik ne može izravno pristupiti podacima i mijenjati ih kako želi. Korisnici će dobiti ili postaviti vrijednosti podataka samo metodama koje su javno dostupne korisnicima. Te metode obično omogućuju provjeru valjanosti podataka tako da se u polja smije unositi samo podatke u odgovarajućem formatu. Stoga su prednosti enkapsulacije trostruke. Putem Encapsulation, programer može napraviti polja klase samo za čitanje ili samo za pisanje. Drugo,klasa može imati potpunu kontrolu nad onim što je pohranjeno u njenim poljima. Konačno, korisnici klase ne trebaju brinuti kako se pohranjuju njezini podaci. U Javi programer može proglasiti sve varijable instance privatnim i pružiti metode get i set (koje su javne) za pristup i izmjenu privatnih polja.
Što je apstrakcija?
Apstrakcija je postupak razdvajanja 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 provodi. Apstrakcija u osnovi skriva detalje implementacije, tako da čak i ako se metodologija implementacije vremenom promijeni, 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 na niskoj razini otkrit će hardverske detalje, dok će apstrakcija na visokoj razini otkriti samo poslovnu logiku entiteta. Izraz apstrakcija može se koristiti kako za entitet, tako i za postupak, što dovodi do određene zabune. Kao proces, apstrakcija znači izdvajanje bitnih detalja uz zanemarivanje nebitnih detalja predmeta ili skupine predmeta, dok kao entitet apstrakcija znači model ili pogled na entitet sa samo bitnim detaljima. U Javi programer može upotrijebiti ključnu riječ sažetak kako bi klasu proglasio apstraktnim entitetom, što predstavlja ključne definirajuće karakteristike entiteta iz stvarnog svijeta.programer može upotrijebiti ključnu riječ sažetak kako bi klasu proglasio apstraktnim entitetom, što predstavlja bitne definirajuće karakteristike entiteta iz stvarnog svijeta.programer može upotrijebiti ključnu riječ sažetak kako bi klasu proglasio apstraktnim entitetom, što predstavlja bitne definirajuće karakteristike entiteta iz stvarnog svijeta.
Koja je razlika između enkapsulacije i apstrakcije?
Iako su enkapsulacija i apstrakcija izrazito povezani koncepti koji se nalaze u objektno orijentiranim programskim jezicima, oni imaju ključne razlike. Apstrakcija je tehnika koja nam pomaže prepoznati što bi trebalo biti vidljivo, a što skriveno. Inkapsulacija je tehnika pakiranja informacija tako da čini vidljivim ono što bi trebalo biti vidljivo i skriva ono što bi trebalo biti skriveno. Drugim riječima, inkapsulacija se može identificirati kao jedan korak dalje od apstrakcije. Iako se apstrakcijom objekt stvarnog svijeta svodi na njegove bitne definirajuće karakteristike, inkapsulacija proširuje ovu ideju modeliranjem i povezivanjem ove funkcionalnosti tog entiteta.