Forskel mellem abstraktion vs indkapsling

Abstraktion vs Encapsulation, de er begge de grundlæggende objektorienterede programmering (OOP) -koncepter, der tillader at reelle objekter implementeres i kode og program. De er meget forskellige, da de begge går hånd i hånd. Selvom de begge er teknisk uadskillelige, har de ikke noget fælles bogstaveligt talt. Næsten al indkapsling er en abstraktion, fordi de begge maskerer noget, men har en rimelig andel af forskelle.

Hvad er abstraktion?

Abstraktion er et grundlæggende OOP-koncept, der kun fokuserer på de relevante data for et objekt og dækker alle de irrelevante detaljer, der kan eller ikke kan bruges til generisk eller specialiseret adfærd. Det maskerer baggrundsdetaljerne og fremhæver de væsentlige elementer for at reducere kompleksiteten og forbedre effektiviteten. Det hjælper med at forenkle repræsentationen af ​​domænemodeller. Abstraktion handler mere om ideer end om begivenheder. Det dækker detaljerne på designniveauet ved at tilbyde brugerne funktionalitet. En abstraktion kan også kaldes det resulterende objekt.

Lad os tage et eksempel

Så lad os overveje motorcyklen En mekaniker forsøger at reparere din motorcykel eller sige et bestemt afsnit af din motorcykel. Du er brugeren, og du vil ikke vide, hvad din motorcykel specificerer, eller hvilken del der faktisk har ødelagt. Du er ligeglad; du vil blot have din moto-cyklus i sin oprindelige tilstand uden at bekymre dig om detaljerne. Du fortalte mekanikeren, hvad du ville ved at adskille den implementerende del, dette kaldes abstraktion. Den vigtigste ting du gjorde var at rette din motorcykel i stedet for at fokusere på oplysningerne.

Hvad er indkapsling?

Et andet koncept med OOP-indkapsling binder data og funktionaliteter til en komponent, mens der er etableret begrænsning af adgangen til visse komponenter. Indkapsling forbedrer vedligeholdeligheden af ​​din applikation. Dette giver brugeren en masse fleksibilitet i brugen af ​​systemet. Det gør hele kodningsprocessen lettere, da du kun er interesseret i, hvad en anden klasse ikke gør. Dette er et af de vigtigste grundlæggende koncepter i OOP, der pakker data og data ind i en enhed. Det giver dataene grundlæggende integritet ved at forsvare dem fra omverdenen. Det skjuler yderligere oplysninger fra omverdenen let.

Lad os tage et eksempel

Kun du behøver at kende enhedens opførsel uden at skulle bekymre dig om at implementere detaljer som hvilke sensorer tastaturet har, og om det er trådløst eller ej osv. Hver detalje beskriver musen, men det er simpelthen et tastatur uanset detaljen. Du har bare en tastaturgrænseflade, som er musemarkøren i denne situation, og det kaldte vi Indkapsling

Sammenligning fra hoved til hoved mellem abstraktion vs indkapsling (infographics)

Nedenfor er de øverste 6 forskelle mellem Abstraktion vs Indkapsling

Vigtige forskelle mellem abstraktion vs indkapsling

Lad os diskutere nogle af de største forskelle mellem Abstraktion vs Indkapsling:

Den største forskel mellem abstraktion vs indkapsling er, at problemet løses ved abstraktion på designniveau og niveauet for applikationen ved indkapsling. Abstraktion involverer skjul af uønsket information, mens den giver den vigtigste information, mens indkapsling indebærer skjul af kode og information i en enhed.

Abstraktion giver dig mulighed for at fokusere på, hvad emnet gør i stedet for hvordan det gør, mens indkapsling betyder de indre detaljer om, hvordan objektet fungerer. Du kan ændre det senere med en bedre teknik, hvis du opretholder den indre information fortrolig. Abstraktion fokuserer på udvendig visning, for eksempel skiftning af bilen, mens indkapsling fokuserer på internt arbejde eller indre visning.

Abstraktion understøttes i Java med grænsefladen og den abstrakte klasse, og indkapsling understøttes ved hjælp af f.eks. Offentlige, private og sikre adgangsmodifikationssystemer. Dette er adskillelsen i Java og OOP mellem Indkapsling og abstraktion. Husk, at abstraktion løser problemet i designniveauet og indkapslingen i eksekveringsniveauet. Begge for en OOP-programmer er meget vigtige, men det kan undertiden være svært at forklare. Som jeg sagde før, er at skrive kode og læse kode for andre en af ​​de bedste måder at lære og mestre objektorienteret programmering.

Abstraktion skjuler implementering ved hjælp af interface og abstrakt klasse, mens indkapsling skjuler dataene ved hjælp af getters og seters.

Sammenligningstabel over abstraktion vs indkapsling

Nedenfor er den øverste sammenligning mellem Abstraktion vs Indkapsling:

abstraktion

Indkapsling

Abstraktion fungerer på designniveauIndkapsling fungerer på applikationsniveau
Abstraktion implementeres for at skjule unødvendige data og trække relevante data.Indkapsling er mekanismen til at skjule koden og dataene sammen for omverdenen eller misbruge.
Det fremhæver hvad der er et objekts arbejde i stedet for hvordan objektet fungererDet fokuserer på de indre detaljer om, hvordan objektet fungerer. Ændringer kan udføres senere til indstillingerne.
Abstraktion fokuserer på udvendig visning, for eksempel at skifte bil.Indkapsling fokuserer på internt arbejde eller indre visning, for eksempel produktion af bilen.
Abstraktion understøttes i Java med grænsefladen og den abstrakte klasseIndkapsling understøttes ved hjælp af f.eks. Offentlige, private og sikre adgangsmodificeringssystemer.
I et nøddeskal skjuler abstraktion implementering ved hjælp af et interface og en abstrakt klasse.I en nøddeskal skjuler indkapsling dataene ved hjælp af getters og setters.

Konklusion

I denne artikel har vi set, hvad der er Abstraktion vs Indkapsling, og forskellen mellem dem. Mens begge er Data Hiding OOP-ideer, er de ganske forskellige fra hinanden. Det maskerer baggrundsinformationen og fremhæver de kritiske informationspunkter for at reducere kompleksiteten og forbedre effektiviteten. Med nye krav er den indkapslede kode meget fleksibel og let at ændre.

Anbefalede artikler

Dette har været en guide til den største forskel mellem Abstraktion vs Indkapsling. Her diskuterer vi også Abstraction vs Encapsulation nøgleforskelle med infografik og sammenligningstabel. Du kan også se på de følgende artikler for at lære mere -

  1. Hvad er C ++
  2. CSS vs JavaScript
  3. C vs Python
  4. Vejledning til indkapsling i PHP

Kategori: