Forskjell mellom abstraksjon vs innkapsling

Abstraksjon vs Encapsulation. De er begge de grunnleggende objektorienterte programmeringskonseptene (OOP) som gjør at virkelige objekter kan implementeres i kode og program. De er veldig forskjellige, ettersom de begge går hånd i hånd. Selv om de begge er teknisk uatskillelige, har de ikke noe felles bokstavelig talt. Nesten all innkapsling er en abstraksjon fordi de begge maskerer noe, men har en god del av forskjellene.

Hva er abstraksjon?

Abstraksjon er et grunnleggende OOP-konsept som kun fokuserer på relevante data om et objekt og dekker opp alle de irrelevante detaljer som kan eller ikke kan brukes til generisk eller spesialisert oppførsel. Den maskerer bakgrunnsdetaljene og fremhever de essensielle elementene for å redusere kompleksiteten og forbedre effektiviteten. Det hjelper med å forenkle representasjonen av domenemodellen. Abstraksjon handler mer om ideer enn om hendelser. Det dekker opp detaljene på designnivå ved å tilby brukerne funksjonalitet. En abstraksjon kan også kalles det resulterende objektet.

La oss ta et eksempel

Så la oss ta stilling til motorsykkelen En mekaniker prøver å reparere motorsykkelen din eller si en viss del av motorsykkelen. Du er brukeren, og du vil ikke vite motorsykkelspesifikasjonene eller hvilken del som faktisk har ødelagt. Du bryr deg ikke; du vil bare ha motorsyklusen din i sin opprinnelige stand uten å bekymre deg for detaljene. Du fortalte mekanikeren hva du ville ved å skille ut implementeringsdelen, dette kalles abstraksjon. Det viktigste du gjorde var å fikse motorsykkelen din i stedet for å fokusere på detaljene.

Hva er innkapsling?

Et annet konsept med OOP-innkapsling binder data og funksjonalitet til en komponent mens det er etablert begrensninger av tilgangen til visse komponenter. Innkapsling vil forbedre vedlikeholdbarheten til applikasjonen din. Dette vil gi brukeren mye fleksibilitet i å bruke systemet. Det gjør hele kodingsprosessen enklere, ettersom du bare er interessert i hva en annen klasse ikke gjør. Dette er et av de viktigste grunnleggende konseptene til OOP, som pakker inn data og data i en enhet. Det gir dataene grunnleggende integritet ved å forsvare dem fra omverdenen. Den skjuler tilleggsinformasjon fra omverdenen i enkle ord.

La oss ta et eksempel

Bare du trenger å kjenne enhetens oppførsel uten å måtte bekymre deg for å implementere detaljer som hvilke sensorer tastaturet har og om det er trådløst eller ikke osv. Hver detalj beskriver musen, men det er ganske enkelt et tastatur uavhengig av detalj. Du har bare et tastaturgrensesnitt, som er musepekeren i denne situasjonen og dette vi kalte Innkapsling

Sammenligning fra topp mot hode mellom abstraksjon vs innkapsling (infografikk)

Nedenfor er topp 6 forskjellen mellom Abstraksjon vs Encapsulation

Viktige forskjeller mellom abstraksjon vs innkapsling

La oss diskutere noen av de viktigste forskjellene mellom abstraksjon vs innkapsling:

Hovedforskjellen mellom abstraksjon vs innkapsling er at problemet løses ved abstraksjon på designnivå og nivået på applikasjonen ved hjelp av innkapsling. Abstraksjon innebærer å skjule uønsket informasjon mens du gir den viktigste informasjonen, mens innkapsling innebærer å skjule kode og informasjon på en enhet.

Abstraksjon lar deg fokusere på hva elementet gjør i stedet for hvordan det gjør det, mens innkapsling betyr de indre detaljene i hvordan objektet fungerer. Du kan endre den senere med en bedre teknikk hvis du holder den indre informasjonen konfidensiell. Abstraksjon fokuserer på utvendig visning, for eksempel skifting av bilen mens innkapsling fokuserer på internt arbeid eller indre betraktning.

Abstraksjon støttes i Java med grensesnittet og den abstrakte klassen, og Innkapsling støttes ved bruk av for eksempel offentlige, private og sikre tilgangsmodifiseringssystemer. Dette er separasjonen i Java og OOP mellom Innkapsling og abstraksjon. Husk at abstraksjon løser problemet i designnivå og innkapsling i utførelsesnivå. Begge for en OOP-programmerer er veldig viktige, men det kan noen ganger være vanskelig å forklare. Som jeg sa før, er å skrive kode og lese kode for andre en av de beste måtene å lære og mestre objektorientert programmering.

Abstraksjon skjuler implementering ved hjelp av grensesnitt og abstrakt klasse, mens innkapsling skjuler dataene ved hjelp av getters og setters.

Sammenligningstabell for abstraksjon vs innkapsling

Nedenfor er den øverste sammenligningen mellom Abstraksjon vs Encapsulation:

Abstraksjon

innkapsling

Abstraksjon fungerer på designnivåInnkapsling fungerer på applikasjonsnivå
Abstraksjon implementeres for å skjule unødvendige data og trekke tilbake relevante data.Innkapsling er mekanismen for å skjule koden og dataene sammen fra omverdenen eller misbruke.
Den belyser hva som er arbeidet til et objekt i stedet for hvordan objektet fungererDet fokuserer på de indre detaljene i hvordan objektet fungerer. Endringer kan gjøres senere til innstillingene.
Abstraksjon fokuserer på visning utenfor, for eksempel å skifte bil.Innkapsling fokuserer på internt arbeid eller indre betraktning, for eksempel produksjon av bilen.
Abstraksjon støttes i Java med grensesnittet og den abstrakte klassenInnkapsling støttes ved bruk av for eksempel offentlige, private og sikre tilgangsmodifiseringssystemer.
I et nøtteskall skjuler abstraksjon implementering ved hjelp av et grensesnitt og en abstrakt klasse.I et nøtteskall skjuler kapsling dataene ved hjelp av getters og setters.

Konklusjon

I denne artikkelen har vi sett hva som er Abstraksjon vs Innkapsling og forskjellen mellom dem. Selv om begge er Data Hiding OOP-ideer, er de ganske forskjellige fra hverandre. Den maskerer bakgrunnsinformasjonen og fremhever kritiske informasjonspunkter for å redusere kompleksiteten og forbedre effektiviteten. Med nye krav er den innkapslede koden veldig fleksibel og lett å endre.

Anbefalte artikler

Dette har vært en guide til den største forskjellen mellom abstraksjon vs innkapsling. Her diskuterer vi også Abstraction vs Encapsulation viktige forskjeller med infografikk, og sammenligningstabell. Du kan også se på følgende artikler for å lære mer -

  1. Hva er C ++
  2. CSS vs JavaScript
  3. C vs Python
  4. Veiledning for innkapsling i PHP