Forskel mellem abstraktion og indkapsling

Abstraktion og indkapsling er begge grundlæggende objektorienterede programmering (OOP) -koncepter, der giver dig mulighed for at implementere objekter i den virkelige verden til programmer og koder. Mens begge går hånd i hånd, er de meget forskellige fra hinanden. Mens hver metode er en indkapsling, er den også en abstraktion. Enkelt sagt, når du sætter forskellige ting sammen for at skabe en enhed, skaber du faktisk et koncept - et abstrakt. Selvom begge er teknisk uadskillelige, har de bogstaveligt talt intet fælles. Det er næsten rigtigt, at enhver indkapsling er en abstraktion, fordi de begge skjuler noget, men de har deres rimelige andel af forskelle.

Hvad er abstraktion?

Abstraktion er et grundlæggende OOP-koncept, der kun fokuserer på de relevante data for et objekt og skjuler alle de irrelevante detaljer, der måske eller måske er til generisk eller specialiseret opførsel. Det skjuler baggrundsdetaljerne og understreger de væsentlige punkter for at reducere kompleksiteten og øge effektiviteten. Grundlæggende er abstraktion et programmeringsværktøj til at styre kompleksiteten. Abstraktion fokuserer på ideer snarere end begivenheder. Det skjuler detaljerne på designniveauet ved at give brugerne funktionalitet. Det resulterende objekt kan også kaldes en abstraktion. Programmereren sørger for, at den navngivne enhed har alle de væsentlige aspekter inkluderet, og at ingen af ​​de irrelevante.

Lad os tage et ægte eksempel på abstraktion. Lad os overveje sagen om et køretøj, som i dette tilfælde er dit køretøj. En mekaniker forsøger at reparere din bil, eller lad os sige en bestemt del af din bil. Her er du brugeren, og du ønsker ikke at komme ind på detaljerne i din bil eller hvilken del der faktisk brød. Du er faktisk ligeglad med disse ting; du vil bare have dit køretøj tilbage i sin oprindelige tilstand uden at bekymre dig om detaljerne. Så du fortalte faktisk mekanikeren, hvad du vil ved at adskille implementeringsdelen. Dette er abstraktion. Du fokuserede på den mest væsentlige ting, der er at få din bil rettet snarere end at fokusere på detaljerne.

Hvad er indkapsling?

Indkapsling er endnu et andet OOP-koncept, som binder data og funktioner til en enkelt komponent, samtidig med at det begrænser adgangen til nogle komponenter. Det er et af de vigtigste grundlæggende koncepter i OOP, der pakker data og information under en enkelt enhed. I tekniske termer betyder indkapsling skjul af attributter til afskærmning af variabler fra adgang udefra, så ændring i den ene del af en applikation ikke påvirker de andre dele. Tværtimod, ved at gøre oplysningerne mere åbne risikerer du misbrug af data. Det giver grundlæggende integritet til dataene ved at beskytte dem mod omverdenen. Enkelt set skjuler det de ekstra detaljer fra omverdenen.

Lad os tage et eksempel på en Bluetooth-mus. Du behøver kun at vide om enhedens opførsel uden at bekymre dig om implementeringsdetaljerne, som hvilken slags sensorer musen har, er den trådløs eller ej osv. Hver eneste detalje beskriver musen, men uanset detaljerne er det bare en mus. Du har bare brug for en grænseflade for at bruge musen, som i dette tilfælde er musemarkøren. Dette er indkapsling.

Forskel mellem abstraktion og indkapsling

Selvom begge er grundlæggende begreber relateret til OOP, og de er teknisk uadskillelige, har de stadig deres forskelle i mange aspekter.

  1. Forskelle i "definition" af abstraktion og indkapsling - Abstraktion er et grundlæggende OOP-koncept, der understreger alle de væsentlige aspekter af et objekt ved at skjule de irrelevante detaljer for at øge effektiviteten og eliminere kompleksiteten. Indkapsling er på den anden side en mekanisme til skjul af data, der indpakker data og information i en kapsel for at begrænse adgangen fra omverdenen.
  2. Forskelle i "funktionalitet" af abstraktion og indkapsling- Abstraktion er en data skjult mekanisme, der kun fremhæver de væsentlige funktioner til at gøre komplekse programmer enklere, mens indkapsling på den anden side er en metode til at binde data og koder til en enkelt enhed. Tanken er at beskytte implementeringsdetaljerne fra ekstern adgang.
  3. Forskelle i "Implementering" af abstraktion og indkapsling - Abstraktion implementeres ved hjælp af abstrakt klasse og interface, mens indkapsling implementeres ved hjælp af adgangsmodifikatorer. Fem typer modifikatorer bruges til at indkapsle data: Privat, offentligt, internt, beskyttet og beskyttet internt.
  4. Forskelle i "koncept" af abstraktion og indkapsling- Tanken bag abstraktionen er at fokusere på hvad snarere end hvordan. Indkapsling skjuler den interne mekanik for hvordan. For eksempel, når du kører en bil, ved du nøjagtigt, hvad bremsepedalen gør, men du kender måske ikke hele mekanismen bag det, fordi dataene er indkapslet.
  5. Forskelle i "eksempel" på abstraktion og indkapsling - Lad os tage et eksempel på en smartphone. Du ved hvad det gør, men du ved muligvis ikke, hvordan det gør, hvad det gør. Du er kun interesseret i skærmbilledet og knapperne på tastaturet i stedet for at bekymre dig om dets indre kredsløb. Her er smartphone et abstrakt, hvor de indre implementeringsdetaljer er indkapslet.

Abstraktion vs. indkapsling med sammenligningstabellen

abstraktion Indkapsling
Den behandler kun de relevante detaljer ved at skjule de irrelevante for at reducere kompleksiteten og derved øge effektiviteten. Det binder dataene og informationerne sammen til en enkelt enhed for at beskytte dataene fra eksterne kilder.
Det henviser til ideen om at skjule data, som ikke er påkrævet til præsentationsformål. Det skjuler data og kode for at begrænse uønsket adgang.
Det fokuserer på hvad snarere end hvordan. Det skjuler den interne mekanik for, hvordan den gør noget.
Det skjuler de unødvendige detaljer på designniveau. Det skjuler også detaljerne, men på implementeringsniveau.
Information og data adskilles fra de relevante data. Information er skjult inde i en kapsel for tæt adgang.
Det handler om ideer snarere end begivenheder. Tanken er at beskytte dataene fra omverdenen.
Det implementeres ved hjælp af abstrakt klasse og interface. Det implementeres ved hjælp af beskyttede, private og pakke-private adgang modifikatorer.

Resumé

Mens begge er OOP-koncepter relateret til skjul af data, er de ganske forskellige fra hinanden. Abstraktion vedrører også skjul som indkapsling, men mens førstnævnte skjuler kompleksitet, bevarer sidstnævnte data det indkapsler ved at kontrollere adgangen til dem. Abstraktion henviser til begrebet kun at repræsentere de nødvendige egenskaber ved at skjule de irrelevante detaljer for at reducere en applikations kompleksitet og derved øge effektiviteten. Indkapsling henviser på den anden side til konceptet om at skjule al intern mekanik i et program for at beskytte informationen mod uønsket adgang. Det binder dataene og informationerne sammen til en enkelt komponent ved at begrænse adgangen til andre komponenter.