Forskellen mellem abstraktion og indkapsling

Nøgleforskelle mellem abstraktion vs indkapsling

  • Abstraktion viser kun nyttige data ved at give de mest nødvendige detaljer, hvorimod Encapsulation ombryder kode og data for nødvendig information.
  • Abstraktion fokuserer hovedsageligt på, hvad der skal gøres, mens Encapsulation er fokuseret på, hvordan det skal gøres.
  • Abstraktion skjuler kompleksitet ved at give dig et mere abstrakt billede, mens Encapsulation skjuler internt arbejde, så du kan ændre det senere.
  • Abstraktion hjælper dig med at opdele programmet i mange uafhængige dele, hvorimod Encapsulation er let at ændre med nye krav.
  • Ved at sammenligne indkapsling vs abstraktion løser abstraktion problemer på designniveau, mens indkapsling løser problemer på implementeringsniveau.
  • Abstraktion skjuler de irrelevante detaljer, der findes i koden, mens Encapsulation hjælper udviklere med nemt at organisere hele koden.
Forskellen mellem abstraktion og indkapsling
Forskellen mellem abstraktion og indkapsling i Java

Definition af abstraktion

Abstraktion er et OOP-koncept, der kun fokuserer på relevante data om et objekt. Det skjuler baggrundsdetaljerne og understreger de væsentlige datapunkter for at reducere kompleksiteten og øge effektiviteten. Det beholder generelt kun information, der er mest relevant for den specifikke proces. abstraktion Metoden fokuserer hovedsageligt på ideen i stedet for den faktiske funktion.

Definition af indkapsling

Encapsulation er en metode til at gøre et komplekst system nemmere at håndtere for slutbrugere. Brugeren behøver ikke bekymre sig om interne detaljer og kompleksiteter i systemet. Indkapsling er en proces med indpakning af data og kode, der opererer på dataene i en enkelt enhed. Du kan antage det som en beskyttende indpakning, der stopper tilfældig adgang til kode, der er defineret uden for denne indpakning.

Abstraktion vs indkapsling
Abstraktion vs indkapsling

Forskellen mellem abstraktion og indkapsling

Her er hovedforskellen mellem abstraktion vs indkapsling:

Parameter abstraktion Indkapsling
Brugt til Abstraktion løser det problem og de problemer, der opstår på designstadiet. Indkapsling løser det problem og problem, der opstår på implementeringsstadiet.
Fokus Abstraktion giver dig mulighed for at fokusere på, hvad objektet gør i stedet for, hvordan det gør det Encapsulation giver dig mulighed for at skjule koden og dataene i en enkelt enhed for at sikre dataene fra omverdenen.
Implementering Du kan bruge abstraktion ved hjælp af Interface og Abstract Class. Du kan implementere indkapsling ved hjælp af adgangsmodifikatorer (offentlig, beskyttet og privat.)
fokuserer Fokuser primært på, hvad der skal gøres. Fokuser primært på, hvordan det skal gøres.
Anvendelse På designniveau. Under implementeringsniveauet.

Hvorfor har du brug for abstraktion?

Her er hovedårsagerne til, at abstraktion er nødvendig for objektorienteret programmering:

  • Hjælper dig med at forenkle repræsentationen af ​​domænemodellerne.
  • Abstraktion skjuler de irrelevante detaljer, der findes i koden.
  • Abstraktion hjælper dig med at opdele programmet i mange uafhængige koncepter.
  • Tilbyder den største fleksibilitet ved brug af ADT(Abstract Data Type) objekter i forskellige situationer

Hvorfor har du brug for indkapsling?

De vigtigste fordele ved indkapsling er

  • Det forbedrer vedligeholdelsen af ​​en applikation.
  • Tilbyder fleksibilitet til brugeren til at bruge systemet meget nemt
  • Hjælper udviklerne med at organisere koden bedre
  • Gør den overordnede kodningsproces lettere, da du kun er optaget af, hvad en anden klasse gør, ikke hvordan den gør det
  • Denne metode hjælper udviklerne til at være mere 'objektive' og resultatorienterede.
  • Encapsulated Code er ret fleksibel og nem at ændre med nye krav.
  • Indkapsling gør enhedstestning let.
  • Det giver dig mulighed for at reducere koblingen af ​​moduler og øger sammenhængen inde i et modul, da alle dele af en ting er indkapslet på ét sted.
  • Encapsulation hjælper dig med at ændre en del af koden uden at påvirke andre dele af koden.
  • Forbedrer kodelæsbarheden af ​​applikationen
  • Forbedret sikkerhed og gør vedligeholdelse af applikationen nemmere
  • Indkapslingsgrænsefladen tillader kun veldefineret interaktion.

Eksempel på abstraktion

Antag, at du vil oprette en bankapplikation, og du bliver bedt om at indsamle alle oplysninger om din kunde. Der er chancer for, at du kommer med følgende oplysninger om kunden.

Eksempel på abstraktion i OOP
Eksempel på abstraktion i OOP

Men ikke alle ovenstående oplysninger er nødvendige for at oprette en bankapplikation.

Så du skal kun vælge de nyttige oplysninger til din bankapplikation fra den pulje. Data som navn, adresse, skatteoplysninger osv. giver mening for en bankapplikation.

Eksempel på abstraktion i OOP
Eksempel på abstraktion i OOP

Da vi har hentet/fjernet/valgt kundeoplysningerne fra en større pulje, omtales processen som Abstraktion.

Men den samme information, når den først er udtrukket, kan bruges til en lang række applikationer. For eksempel kan du bruge de samme data til hospitalsansøgninger, jobportalansøgninger, en regeringsdatabase osv. med få eller ingen ændringer. Derfor bliver det dine stamdata. Dette er en fordel ved abstraktion.

Eksempel på indkapsling

Lad os tage et eksempel på mobilenhed. Ved hjælp af mobile enheder kan du udføre forskellige funktioner som at tage et billede, sende en besked, optage video/lyd, få adgang til internettet og meget mere.

Ovennævnte funktioner er funktionaliteter på de fleste smartphones. Du behøver dog ikke at forstå de interne funktionsdetaljer for disse funktioner, før du bruger dette program. Eksempelvis behøver du ikke vide, hvordan dit kamera beregner gammakorrektion eller identificerer et menneskeligt ansigt på et billede. Du skal bare lære softwaregrænsefladen. Dette er indkapsling.