Forskjellen mellom abstraksjon og innkapsling

Abstraksjon og innkapsling er både grunnleggende objektorientert programmering (OOP) konsepter som lar deg implementere virkelige objekter i programmer og koder. Mens begge går hånd i hånd, er de svært forskjellige fra hverandre. Mens hver metode er en innkapsling, er det også en abstraksjon. Enkelt sagt, når du setter forskjellige ting sammen for å skape en enhet, lager du faktisk et konsept - et abstrakt. Mens begge er teknisk uadskillelige, har de bokstavelig talt ingenting til felles. Det er nesten sant at hver innkapsling er en abstraksjon fordi de begge skjuler noe, men de har sin rettferdige andel av forskjeller.

Hva er abstraksjon?

Abstraksjon er et grunnleggende OOP-konsept som fokuserer på bare de relevante dataene til et objekt og gjemmer alle de irrelevante detaljene som kanskje eller ikke er for generisk eller spesialisert oppførsel. Den gjemmer bakgrunnsdetaljene og legger vekt på viktige punkter for å redusere kompleksiteten og øke effektiviteten. I utgangspunktet er abstraksjon et programmeringsverktøy for å håndtere kompleksitet. Abstraksjon fokuserer på ideer i stedet for hendelser. Den skjuler detaljene på designnivået ved å gi brukerne funksjonalitet. Den resulterende gjenstanden kan også kalles en abstraksjon. Programmereren sørger for at den navngitte enheten har alle de essensielle aspektene som inngår og ingen av de irrelevante.

La oss ta et ekteeksempel på abstraksjon. La oss vurdere saken om et kjøretøy, som i dette tilfellet er kjøretøyet ditt. En mekaniker prøver å reparere bilen din eller la oss si en bestemt del av bilen din. Her er du brukeren, og du vil ikke komme inn i spesifikasjonene til bilen din eller hvilken del som faktisk brøt. Du bryr deg egentlig ikke om disse tingene; du vil bare ha bilen tilbake i sin opprinnelige tilstand uten å bekymre deg for detaljene. Så, du fortalte faktisk mekanikeren hva du vil ved å adskille implementeringsdelen. Dette er abstraksjon. Du fokuserte på det mest essensielle, som får bilen fast, i stedet for å fokusere på detaljene.

Hva er Encapsulation?

Innkapsling er enda et OOP-konsept som binder data og funksjoner til en enkelt komponent, samtidig som tilgangen til enkelte komponenter begrenses. Det er en av de viktigste grunnleggende konseptene for OOP som bryter data og informasjon under en enkelt enhet. I tekniske termer betyr innkapsling å gjemme attributter for å skjerme variabler fra utenfor tilgang, slik at endring i en del av et program ikke vil påvirke de andre delene. Tvert imot, ved å gjøre informasjonen mer åpen, vil du risikere misbruk av data. Det gir grunnleggende integritet til dataene ved å beskytte den fra omverdenen. Enkelt sagt skjuler den ekstra detaljer fra omverdenen.

La oss ta et eksempel på en Bluetooth-mus. Du trenger bare å vite om enhetens oppførsel uten å bekymre deg for implementeringsdetaljer som hva slags sensorer musen har, det er trådløs eller ikke, etc. Hver eneste detalj beskriver musen, men uansett detaljene er det bare en mus. Du trenger bare et grensesnitt for å bruke musen, som i dette tilfellet er musepekeren. Dette er innkapsling.

Forskjellen mellom abstraksjon og innkapsling

Mens begge er grunnleggende begreper knyttet til OOP, og de er teknisk uadskillelige, har de fortsatt forskjeller i mange aspekter.

  1. Forskjeller i "Definisjon" av abstraksjon og innkapsling - Abstraksjon er et grunnleggende OOP-konsept som legger vekt på alle de essensielle aspektene ved et objekt ved å gjemme de irrelevante detaljene for å øke effektiviteten og eliminere kompleksiteten. Encapsulation, derimot, er en data skjule mekanisme som bryter data og informasjon i en kapsel for å begrense tilgang fra utenfor verden.
  2. Forskjeller i "funksjonalitet" av abstraksjon og innkapsling- Abstraksjon er en data skjule mekanisme som fremhever bare de essensielle funksjonene for å gjøre komplekse programmer enklere, mens innkapsling derimot er en metode for binding av data og koder til en enkelt enhet. Tanken er å beskytte implementeringsdetaljer fra ekstern tilgang.
  3. Forskjeller i "Implementering" av abstraksjon og innkapsling - Abstraksjon er implementert ved hjelp av abstrakt klasse og grensesnitt, mens innkapsling implementeres ved hjelp av tilgangsmodifikatorer. Fem typer modifikatorer brukes til å inkapslere data: Privat, Offentlig, Intern, Beskyttet og Beskyttet Intern.
  4. Forskjeller i "konsept" av abstraksjon og innkapsling- Ideen bak abstraksjon er å fokusere på hva heller enn hvordan. Innkapsling skjuler den indre mekanikken til hvordan. For eksempel, når du kjører en bil, vet du nøyaktig hva bremsepedalen gjør, men du kjenner kanskje ikke hele mekanismen bak den fordi dataene er innkapslet.
  5. Forskjeller i "Eksempel" av abstraksjon og innkapsling - La oss ta et eksempel på en smarttelefon. Du vet hva det gjør, men du kan ikke vite hvordan det gjør hva det gjør. Du bryr deg bare om skjermen og tastaturknappene i stedet for å bekymre deg for det indre kretsløpet. Her er smarttelefonen et abstrakt der de indre implementeringsdetaljer er innkapslet.

Abstraksjon vs innkapsling med sammenligningstabellen

Abstraksjon innkapsling
Det omhandler bare de relevante detaljene ved å gjemme de irrelevante til å redusere kompleksiteten og dermed øke effektiviteten. Det binder dataene og informasjonene sammen til en enkelt enhet for å beskytte dataene fra eksterne kilder.
Det refererer til ideen om å skjule data som ikke er nødvendig for presentasjonsformål. Den skjuler dataene og koden for å begrense uønsket tilgang.
Det fokuserer på hva heller enn hvordan. Den skjuler den indre mekanikken av hvordan den gjør noe.
Den skjuler unødvendige detaljer på designnivået. Det skjuler også detaljene, men på implementeringsnivået.
Informasjon og data er skilt fra relevante data. Informasjon er skjult inne i en kapsel for nær tilgang.
Det handler om ideer i stedet for hendelser. Tanken er å beskytte data fra omverdenen.
Det er implementert ved hjelp av abstrakt klasse og grensesnitt. Den er implementert ved hjelp av beskyttede, private og pakke-private tilgangsmodifiseringer.

Sammendrag

Mens begge er OOP konsepter relatert til data gjemmer seg, er de ganske forskjellige fra hverandre. Abstraksjon gjelder også å gjemme som innkapsling, men mens den tidligere gjemmer kompleksiteten, beholder sistnevnte dataene den innkapsler ved å kontrollere tilgangen til dem. Abstraksjon refererer til konseptet om å representere kun de nødvendige funksjonene ved å gjemme de irrelevante detaljene for å redusere kompleksiteten til en applikasjon og dermed øke effektiviteten. Encapsulation, derimot, refererer til konseptet om å skjule alle interne mekanikkene til et program for å beskytte informasjonen fra uønsket tilgang. Det binder dataene og informasjonene sammen til en enkelt komponent ved å begrense tilgangen til andre komponenter.