Forskjell mellom innkapsling og abstraksjon

Anonim

Encapsulation vs Abstraction

Encapsulation og Abstraction er to forskjellige men relaterte begreper funnet i OOP (Object Oriented Programming) språk. Encapsulation er begrepet kombinere data og oppførsel sammen som en enkelt enhet. På den annen side er abstraksjon prosessen med å presentere hvordan en enhet oppfører seg ser i motsetning til hvordan den implementeres.

Hva er innkapsling?

Encapsulation er prosessen med å pakke inn data og operasjon som opererer på dem i en enkelt enhet. Dette innebærer i hovedsak at for å få tilgang til data, bør visse forhåndsdefinerte metoder benyttes. Med andre ord er innkapslede data ikke direkte tilgjengelige. Dette sikrer at integriteten til dataene blir bevart fordi brukeren ikke er i stand til direkte tilgang og modifisering av dataene som han / hun ønsker. Brukerne vil bare få eller sette dataverdiene bare gjennom metodene som er tilgjengelige for brukerne. Disse metodene gir vanligvis datavalidering, slik at kun dataene i riktig format kan settes inn i feltene. Derfor er fordelene ved innkapsling tre ganger. Gjennom innkapsling kan programmøren lage felt i en klasse skrivebeskyttet eller skrive bare. For det andre kan en klasse ha full kontroll over hva som er lagret i feltene sine. Endelig trenger brukerne av en klasse ikke å bekymre seg for hvordan dataene blir lagret. I Java kan programmøren deklarere alle instansvariabler for å være privat og gi get og set metoder (som er offentlige) for å få tilgang til og endre private felt.

Hva er abstraksjon?

Abstraksjon er prosessen med å separere presentasjonsdetaljer fra implementeringsdetaljer. Dette er gjort slik at utvikleren er lettet over de mer komplekse implementeringsdetaljer. I stedet kan programmøren fokusere på presentasjonen eller atferdsdataene til enheten. Enkelt sagt fokuserer abstraksjon på hvordan en bestemt enhet kan brukes i stedet for hvordan den implementeres. Abstraksjon skjuler i hovedsak bort implementeringsdetaljer, slik at selv om implementeringsmetodikken endres over tid, ville programmereren ikke måtte bekymre seg for hvordan det ville påvirke sitt program. Et system kan abstraheres i flere lag eller nivåer. For eksempel vil lavnivå abstraksjonslag avsløre maskinvaredetaljer, mens abstraksjon på høyt nivå bare vil avsløre virksomhetslogikken til enheten. Begrepet abstraksjon kan brukes til å referere til både en enhet og en prosess, og dette fører til litt forvirring. Som en prosess betyr abstraksjon å trekke ut viktige detaljer mens du ignorerer de uopprettede detaljene til et element eller en gruppe av elementer, mens som en enhet betyr abstraksjon en modell eller en visning av et foretak med bare de viktigste detaljene.I Java kan programmøren bruke søkeordet abstrakt til å erklære en klasse som en abstrakt enhet, som representerer den essensielle definerende karakteriseringen av en ekte verdenseenhet.

Hva er forskjellen mellom innkapsling og abstraksjon?

Selv om Encapsulation og Abstraction er svært relaterte begreper som finnes i Object Oriented Programming-språk, har de viktige forskjeller. Abstraksjon er en teknikk som hjelper oss å identifisere hva som skal være synlig og hva som skal skjules. Innkapsling er teknikker for å pakke inn informasjonen slik at den synliggjør hva som skal være synlig og gjemmer hva som skal skjules. Med andre ord kan innkapsling identifiseres som ett trinn utover abstraksjon. Mens abstraksjon reduserer et ekte verdensobjekt til dets viktige definerende egenskaper, utvider inkapslingen denne ideen ved å modellere og knytte denne funksjonaliteten til denne enheten.