Razlika Med Kapsulacijo In Abstrakcijo

Razlika Med Kapsulacijo In Abstrakcijo
Razlika Med Kapsulacijo In Abstrakcijo

Video: Razlika Med Kapsulacijo In Abstrakcijo

Video: Razlika Med Kapsulacijo In Abstrakcijo
Video: J. Krishnamurti - Brockwood Park 1976 - The Transformation of Man - 5 - Your image of yourself... 2024, Maj
Anonim

Kapsulacija vs abstrakcija

Enkapsulacija in abstrakcija sta dva različna, vendar povezana koncepta, ki ju najdemo v jezikih OOP (objektno usmerjeno programiranje). Inkapsulacija je koncept združevanja podatkov in vedenja skupaj kot ena celota. Po drugi strani pa je abstrakcija postopek predstavitve, kako se entiteta obnaša / izgleda, v nasprotju s tem, kako se izvaja.

Kaj je kapsulacija?

Inkapsulacija je postopek zavijanja podatkov in delovanja, ki deluje na njih, v eno samo enoto. To v bistvu pomeni, da je treba za dostop do podatkov uporabiti nekatere vnaprej določene metode. Z drugimi besedami, inkapsulirani podatki niso neposredno dostopni. To zagotavlja ohranitev celovitosti podatkov, ker uporabnik ne more neposredno dostopati do podatkov in jih spreminjati, kot želi. Uporabniki bodo vrednosti podatkov dobili ali nastavili le z metodami, ki so uporabnikom javno dostopne. Te metode običajno omogočajo preverjanje veljavnosti podatkov, tako da je v polja dovoljeno vstavljati samo podatke v ustrezni obliki. Zato so prednosti kapsule trikratne. Z enkapsulacijo lahko programer polja razreda preda samo za branje ali pisanje. Drugič,razred ima lahko popoln nadzor nad tem, kaj je shranjeno v njegovih poljih. Nazadnje, uporabnikom razreda ni treba skrbeti, kako se hranijo njegovi podatki. V Javi lahko programer razglasi vse spremenljivke primerka za zasebne in zagotovi metode get in set (ki so javne) za dostop in spreminjanje zasebnih polj.

Kaj je abstrakcija?

Abstrakcija je postopek ločevanja predstavitvenih podrobnosti od podrobnosti izvedbe. To se naredi tako, da se razvijalec razbremeni zahtevnejših podrobnosti izvedbe. Namesto tega se lahko programer osredotoči na predstavitev ali vedenjske podrobnosti entitete. Preprosto povedano, abstrakcija se osredotoča na to, kako je določeno entiteto mogoče uporabiti, ne pa na to, kako jo izvajamo. Abstrakcija v bistvu skriva podrobnosti izvedbe, tako da se tudi, če se metodologija izvajanja sčasoma spremeni, programerju ne bi bilo treba skrbeti, kako bi to vplivalo na njegov program. Sistem je mogoče abstrahirati v več plasteh ali nivojih. Na primer, ravni abstrakcije na nizki ravni bodo razkrile podrobnosti o strojni opremi, medtem ko bodo abstrakcije na visoki ravni razkrile samo poslovno logiko entitete. Izraz abstrakcija se lahko uporablja tako za entiteto kot za postopek, kar vodi do določene zmede. Kot postopek pomeni abstrakcija izvlečenje bistvenih podrobnosti ob ignoriranju nebistvenih podrobnosti predmeta ali skupine elementov, medtem ko abstrakcija kot entiteta pomeni model ali pogled na entiteto s samo bistvenimi podrobnostmi. V Javi lahko programer s ključno besedo abstrakt razglasi razred kot abstraktno entiteto, ki predstavlja bistvene značilnosti entitete iz resničnega sveta.programer lahko s ključno besedo abstrakt razglasi razred kot abstraktno entiteto, ki predstavlja bistvene značilnosti entitete iz resničnega sveta.programer lahko s ključno besedo abstrakt razglasi razred kot abstraktno entiteto, ki predstavlja bistvene značilnosti entitete iz resničnega sveta.

Kakšna je razlika med enkapsulacijo in abstrakcijo?

Čeprav sta enkapsulacija 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 mora biti vidno in kaj skrito. Kapsulacija je tehnika pakiranja informacij tako, da naredi vidno, kar bi moralo biti vidno, in skrije, kar bi moralo biti skrito. Z drugimi besedami, kapsulacijo lahko označimo kot korak naprej od abstrakcije. Medtem ko abstrakcija objekt iz resničnega sveta zmanjšuje na njegove bistvene značilnosti, enkapsulacija to idejo širi z modeliranjem in povezovanjem te funkcionalnosti te entitete.

Priporočena: