Kapsulacija vs abstrakcija
Kapsulacija in abstrakcija sta dva različna, vendar povezana koncepta, ki jih najdemo v jezikih OOP (Object Oriented Programming). Inkapsulacija je koncept združevanja podatkov in vedenja skupaj kot ena celota. Po drugi strani je abstrakcija postopek predstavitve, kako se podjetje obnaša \ izgleda, v nasprotju s tem, kako se izvaja.
Kaj je kapsulacija?
Inkapsulacija je postopek zapiranja podatkov in postopkov, ki delujejo na njih, v eno celoto. To v bistvu pomeni, da je za dostop do podatkov treba uporabiti nekatere vnaprej določene metode. Z drugimi besedami, enkapsulirani podatki niso neposredno dostopni. To zagotavlja, da se ohrani celovitost podatkov, ker uporabnik ne more neposredno dostopati do podatkov in jih spreminjati po svojih željah. Uporabniki bodo vrednosti podatkov dobili ali nastavili le s pomočjo javno dostopnih metod. Te metode običajno omogočajo preverjanje podatkov, tako da je v polja dovoljeno vnašati samo podatke v ustrezni obliki. Zato so prednosti Encapsulacije trikratne. S pomočjo enkapsulacije lahko programer polja razreda ustvari samo za branje ali pisanje. Drugič, razred ima popoln nadzor nad tem, kaj je shranjeno na njegovih poljih. Na koncu uporabnikom razreda ni treba skrbeti, kako se hranijo njegovi podatki. V Javi lahko programer razglasi vse spremenljivke primerka za zasebne in zagotovi metode pridobivanja in nastavitve (ki so javne) za dostop do zasebnih polj in njihovo spreminjanje..
Kaj je abstrakcija?
Abstrakcija je postopek ločevanja predstavitvenih podrobnosti od podrobnosti o izvedbi. To se naredi tako, da se razvijalci razbremenijo bolj zapletenih podrobnosti izvedbe. Namesto tega se lahko programer osredotoči na predstavitev ali vedenjske podrobnosti subjekta. Preprosto povedano, abstrakcija se osredotoča na to, kako je mogoče uporabiti določen subjekt, namesto na njegovo izvajanje. Abstrakcija v bistvu skriva podrobnosti o izvajanju, tako da tudi če se metodologija izvajanja sčasoma spremeni, programerju ne bi bilo treba skrbeti, kako bo to vplivalo na njegov program. Sistem je mogoče abstrahirati v več plasteh ali nivojih. Na primer, plasti abstrakcije na nizki ravni bodo razkrile podrobnosti o strojni opremi, medtem ko bo abstrakcija na visoki ravni samo razkrila poslovno logiko subjekta. Izraz abstrakcija se lahko uporablja tako, da se nanaša na subjekt in postopek, kar vodi v zmedo. Kot postopek abstrakcija pomeni pridobivanje bistvenih podrobnosti, obenem pa ignoriranje nebistvenih podrobnosti predmeta ali skupine elementov, medtem ko abstrakcija kot entiteta pomeni model ali pogled subjekta, ki ima samo bistvene podrobnosti. V Javi programer lahko s ključno besedo abstrakt razglasi razred kot abstraktno entiteto, kar predstavlja bistvene opredelitve lastnosti resničnega sveta.
Kakšna je razlika med enkapsulacijo in abstrakcijo?
Čeprav sta inkapsulacija in abstrakcija zelo povezana koncepta, ki ju najdemo v objektno usmerjenih programskih jezikih, imata ključne razlike. Abstrakcija je tehnika, ki nam pomaga prepoznati, kaj bi moralo biti vidno in kaj bi moralo biti skrito. Inkapsulacija je tehnike pakiranja informacij tako, da postane vidno tisto, kar bi moralo biti vidno, in skriva, kaj naj bi bilo skrito. Z drugimi besedami, enkapsulacijo lahko označimo kot korak naprej od abstrakcije. Medtem ko abstrakcija omejuje predmet v resničnem svetu na njegove bistvene opredeljujoče značilnosti, kapsulacija razširja to idejo z modeliranjem in povezovanjem te funkcionalnosti te entitete.