Ključna razlika: apstrakcija i enkapsulacija su koncepti programiranja računalne znanosti. Apstrakcija je proces u kojem su dodatne karakteristike podataka uklonjene ili odvojene od podataka; dok je enkapsulacija mehanizam u kojem su podaci skriveni i grupirani u metode.
Apstrakcija je generalizirani proces u kojem se oduzimaju i uklanjaju dodatni podaci kako bi se podaci učinili konkretnima. U računalima, to je metoda programiranja koja pomaže u pretvaranju podataka u koncizan oblik. Podaci i program se ne mijenjaju u ovoj metodi, već se čuvaju u istom početnom obliku; jedina razlika je u tome što su reducirani na manji vidljivi oblik. Apstrakcija pokušava smanjiti i faktorizirati detalje, tako da se programer može usredotočiti na nekoliko pojmova u isto vrijeme.
Sustav može imati mnogo takvih slojeva apstrakcija, koji imaju različita značenja i detalje. Na primjer, slojevi apstrakcije niže razine razotkrivaju detalje računalnog hardvera na kojem se program izvodi, dok se slojevi na visokoj razini bave poslovnom logikom programa. Ti detalji su tada izloženi programeru u vrijeme izvršenja. Apstrakcija je pojam ili ideja, koja nije povezana ni s jednim konkretnim slučajem. On obuhvaća samo one podatke koji se odnose na njegove objekte i trenutne perspektive. Ona igra glavnu ulogu u obitelji objekata (u konceptima objektno-orijentiranog programiranja). i koristi se na različite načine i implementacije.
Koncept apstrakcije može se implementirati u:
- Sažetak kontrole: To je apstrakcija djelovanja.
- Apstrakcija podataka: Omogućuje i obrađuje bitove podataka i strukture podataka na smislene načine.
Inkapsulacija u računalnom programiranju naglašava njegove funkcije u dvije različite oznake, a to su:
- Mehanizam jezika koji ograničava pristup komponentama nekog objekta.
- Jezični konstrukt koji olakšava povezivanje podataka s metodama (i drugim funkcijama) koje djeluju na tim podacima.
Inkapsulacija je mehanizam skrivanja, koji igra ključnu ulogu u zaštiti i osiguravanju podataka od stranaca. On zapravo osigurava osnovni integritet podataka sprečavanjem zlouporabe stvarnih podataka. U enkapsulaciji se podaci pohranjuju i pristupa im se u izvornom valjanom i dosljednom formatu.
Općenito, enkapsulacija znači očuvanje objekta od korisnika i njegovo predstavljanje u općem obliku. Uglavnom, u enkapsulaciji, dodatni detalji su skriveni od vanjskog okruženja. Polja objekata izravno se pregledavaju i manipuliraju ovim mehanizmom. Informacije koje se skrivaju zajedno s opremom sastavljaju se u verziji koja se dalje koristi kao izvorni kod i povezuje se preko datoteke zaglavlja. Ponekad javne klase pokušavaju pristupiti podacima, u tim slučajevima enkapsulacija ne dopušta javnim napadačima da se igraju s podacima. Jedna od glavnih prednosti enkapsulacije je ta da pomaže u smanjenju složenosti programa i pomaže korisnicima da razumiju točne koncepte programa, jer mehanizmi predstavljaju samo jezgrovit oblik programa. To povećava robusnost, dopuštajući programeru ili programeru da ograniči međuovisnosti između softverskih komponenti. Encapsulacija je također primjenjiva u nekim jezicima, kao što su Smalltalk i Ruby, u kojima je pristup dopušten samo putem objektnih metoda; dok većina drugih, C ++, C # ili Java nudi određeni stupanj kontrole programeru. Ovi jezici omogućuju razvojnim inženjerima pristup preko onoga što je skriveno pomoću ključnih riječi kao što su javne i privatne.
Apstrakcija i enkapsulacija također su važne osnove u OOP-u (objektno-orijentirano programiranje).
Usporedba između apstrakcije i enkapsulacije:
Apstrakcija | ovijanje | |
Kratki opis | Apstrakcija je proces koji izdvaja bitne pojedinosti o stavci ili skupini stavki i zanemaruje nebitne pojedinosti. | Inkapsulacija je proces koji omata ili zatvara podatke u kapsuli ili ih čini jezgrovitim. |
Oni su | Apstrakcija se odnosi na ideju skrivanja podataka koji nisu potrebni za prezentaciju. | Inkapsulacija je grupiranje podataka i funkcionalnosti. |
Osnovne funkcije | U osnovi, apstrakcija se koristi za skrivanje neželjenih podataka i daje relevantne podatke. | U osnovi, enkapsulacija znači skrivanje koda i podataka u jednu jedinicu kako bi se zaštitili podaci od vanjskog svijeta. |
Kada su operirani | To rješava problem na razini dizajna. | On upravlja problemom na razini provedbe. |
Korist za uloge | Pomaže korisniku da se usredotoči na ono što objekt radi umjesto na to kako radi bilo koju funkciju. | Pomaže programeru u skrivanju unutarnjih detalja ili mehanike kako objekt radi nešto. |
Informacije su | Ovdje su informacije odvojene od stvarnih podataka. | Ovdje su informacije zamotane u skrivenom obliku. |
izgledi | Radi se o vanjskom izgledu, koji se koristi u smislu dizajna. | Riječ je o unutarnjem rasporedu koji se koristi u smislu provedbe. |
Na primjer | Vanjski izgled mobilnog telefona, koji ima zaslon i tipke na tipkovnici za biranje broja. | Unutarnji detalj provedbe mobilnog telefona, kako su tipke na tipkovnici i zaslon zaslona međusobno povezani pomoću krugova. |