Forskjellen mellom abstraksjon og innkapsling

Viktige forskjeller mellom abstraksjon vs innkapsling

  • Abstraksjon viser bare nyttige data ved å gi de mest nødvendige detaljene, mens Encapsulation omslutter kode og data for nødvendig informasjon.
  • Abstraksjon er hovedsakelig fokusert på hva som skal gjøres, mens Encapsulation er fokusert på hvordan det skal gjøres.
  • Abstraksjon skjuler kompleksitet ved å gi deg et mer abstrakt bilde, mens Encapsulation skjuler internt arbeid slik at du kan endre det senere.
  • Abstraksjon hjelper deg med å dele opp programmet i mange uavhengige deler, mens Encapsulation er lett å endre med nye krav.
  • Ved å sammenligne Encapsulation vs Abstraksjon, løser Abstraksjon problemer på designnivå mens Encapsulation løser problemer på implementeringsnivå.
  • Abstraksjon skjuler de irrelevante detaljene som finnes i koden, mens Encapsulation hjelper utviklere å organisere hele koden enkelt.
Forskjellen mellom abstraksjon og innkapsling
Forskjellen mellom abstraksjon og innkapsling i Java

Definisjon av Abstraksjon

Abstraksjon er et OOP-konsept som kun fokuserer på relevante data om et objekt. Den skjuler bakgrunnsdetaljene og understreker de essensielle datapunktene for å redusere kompleksiteten og øke effektiviteten. Den beholder vanligvis bare informasjon som er mest relevant for den spesifikke prosessen. Abstraksjon Metoden fokuserer hovedsakelig på ideen i stedet for faktisk funksjon.

Definisjon av innkapsling

Innkapsling er en metode for å gjøre et komplekst system enklere å håndtere for sluttbrukere. Brukeren trenger ikke bekymre seg for interne detaljer og kompleksitet i systemet. innkapsling er en prosess for å pakke inn dataene og koden som opererer på dataene til en enkelt enhet. Du kan anta at det er en beskyttende innpakning som stopper tilfeldig tilgang til kode definert utenfor denne innpakningen.

Abstraksjon vs innkapsling
Abstraksjon vs innkapsling

Forskjellen mellom abstraksjon og innkapsling

Her er hovedforskjellen mellom Abstraksjon vs Encapsulation:

Parameter Abstraksjon innkapsling
Bruke til Abstraksjon løser problemet og problemstillingene som oppstår på designstadiet. Innkapsling løser problemet og problemet som oppstår på implementeringsstadiet.
Fokus Abstraksjon lar deg fokusere på hva objektet gjør i stedet for hvordan det gjør det Innkapsling gjør at du kan skjule koden og dataene i en enkelt enhet for å sikre dataene fra omverdenen.
Gjennomføring Du kan bruke abstraksjon ved å bruke grensesnitt og abstrakt klasse. Du kan implementere innkapsling ved å bruke Access Modifiers (offentlig, beskyttet og privat.)
fokuserer Fokuser hovedsakelig på hva som bør gjøres. Fokuser først og fremst på hvordan det skal gjøres.
Søknad På designnivå. Under gjennomføringsnivået.

Hvorfor trenger du abstraksjon?

Her er hovedårsakene til at abstraksjon er nødvendig for objektorientert programmering:

  • Hjelper deg med å forenkle representasjonen av domenemodellene.
  • Abstraksjon skjuler de irrelevante detaljene som finnes i koden.
  • Abstraksjon hjelper deg med å dele opp programmet i mange uavhengige konsepter.
  • Tilbyr størst fleksibilitet når du bruker ADT (Abstract Data Type) objekter i forskjellige situasjoner

Hvorfor trenger du innkapsling?

De viktigste fordelene med innkapsling er

  • Det forbedrer vedlikeholdbarheten til en applikasjon.
  • Tilbyr fleksibilitet til brukeren til å bruke systemet veldig enkelt
  • Hjelper utviklerne å organisere koden bedre
  • Gjør den generelle kodeprosessen enklere, siden du bare er opptatt av hva en annen klasse gjør, ikke hvordan den gjør det
  • Denne metoden hjelper utviklerne til å være mer 'objektive' og resultatorienterte.
  • Encapsulated Code er ganske fleksibel og lett å endre med nye krav.
  • Innkapsling gjør enhetstesting enkelt.
  • Det lar deg redusere koblingen av moduler og øker kohesjonen inne i en modul ettersom alle deler av en ting er innkapslet på ett sted.
  • Encapsulation hjelper deg å endre en del av koden uten å påvirke andre deler av koden.
  • Forbedrer kodelesbarheten til applikasjonen
  • Forbedret sikkerhet og gjør vedlikehold av applikasjonen enklere
  • Innkapslingsgrensesnittet tillater kun veldefinert interaksjon.

Eksempel på abstraksjon

Anta at du vil opprette en bankapplikasjon og du blir bedt om å samle inn all informasjon om kunden din. Det er sjanser for at du kommer opp med følgende informasjon om kunden.

Eksempel på abstraksjon i OOP
Eksempel på abstraksjon i OOP

Men ikke all informasjonen ovenfor er nødvendig for å opprette en bankapplikasjon.

Så du trenger kun å velge nyttig informasjon for bankapplikasjonen din fra den poolen. Data som navn, adresse, skatteinformasjon osv. gir mening for en bankapplikasjon.

Eksempel på abstraksjon i OOP
Eksempel på abstraksjon i OOP

Siden vi har hentet/fjernet/valgt kundeinformasjonen fra en større pool, omtales prosessen som Abstraksjon.

Imidlertid kan den samme informasjonen når den er hentet ut, brukes til et bredt spekter av applikasjoner. Du kan for eksempel bruke de samme dataene for sykehussøknad, jobbportalsøknad, en statlig database osv. med liten eller ingen modifikasjon. Derfor blir det masterdataene dine. Dette er en fordel med Abstraksjon.

Eksempel på innkapsling

La oss ta et eksempel på en mobil enhet. Ved hjelp av mobile enheter kan du utføre ulike funksjoner som å ta et bilde, sende en melding, ta opp video/lyd, få tilgang til nettet og mye mer.

Funksjonene nevnt ovenfor er funksjonene til de fleste smarttelefonene. Du trenger imidlertid ikke å forstå de interne funksjonsdetaljene til disse funksjonene før du bruker dette programmet. Eksempel, du trenger ikke å vite hvordan kameraet ditt beregner gammakorreksjon eller identifiserer et menneskeansikt i et bilde. Du trenger bare å lære programvaregrensesnittet. Dette er innkapsling.