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.
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.
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.
Selvom begge er grundlæggende begreber relateret til OOP, og de er teknisk uadskillelige, har de stadig deres forskelle i mange aspekter.
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. |
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.