Razlika med abstrakcijo in enkapsulacijo

Abstrakcija vs enkapsulacija sta osnovni konceptno usmerjenega programiranja (OOP), ki omogoča izvajanje realnih predmetov v kodi in programu. Zelo sta si različna, saj gresta oba z roko v roki. Čeprav sta oba tehnično nerazdružljiva, nimata dobesedno nič skupnega. Skoraj vsa enkapsulacija je abstrakcija, ker obe nekaj prikrijeta, vendar imata pravičen delež razlik.

Kaj je abstrakcija?

Abstrakcija je temeljni koncept OOP, ki se osredotoča le na ustrezne podatke predmeta in zajema vse nepomembne podrobnosti, ki jih je mogoče ali ne moremo uporabiti za generično ali specializirano ravnanje. Zakriva podrobnosti ozadja in poudarja bistvene elemente za zmanjšanje zapletenosti in izboljšanje učinkovitosti. Pomaga pri poenostavitvi predstavitve modela domene. Abstrakcija bolj pomeni ideje, kot pa dogodke. Zajema podrobnosti na ravni zasnove, saj uporabnikom ponuja funkcionalnost. Abstrakcija se lahko imenuje tudi nastali predmet.

Vzemimo primer

Naj torej razmislimo o motociklu Mehanik poskuša popraviti vaše motorno kolo ali reče določen del svojega motocikla. Uporabnik ste in ne želite vedeti, kakšne so vaše motociklistične podrobnosti ali kakšen del se je dejansko pokvaril. Vseeno ti je; preprosto želite svoj motocikel v prvotnem stanju brez skrbi za podrobnosti. Mehaniku ste povedali, kaj želite, tako da ločite izvedbeni del, ki se imenuje abstrakcija. Najpomembnejše, kar ste storili, je bilo, da popravite svoj motocikel, namesto da se osredotočate na podrobnosti.

Kaj je kapsulacija?

Naslednji koncept OOP enkapsulacije povezuje podatke in funkcionalnosti v eno komponento, hkrati pa je omejen dostop do nekaterih komponent. Zapiranje bo izboljšalo vzdrževanje aplikacije. To bo uporabniku zagotovilo veliko prilagodljivosti pri uporabi sistema. Olajša celoten postopek kodiranja, saj vas zanima samo tisto, kar drug razred ne počne. To je eden glavnih osnovnih konceptov OOP, ki podatke in podatke zajema v eno enoto. Podatkom daje temeljno celovitost z obrambo pred zunanjim svetom. V preprostem smislu skriva dodatne informacije iz zunanjega sveta.

Vzemimo primer

Samo vedeti morate vedenje naprave, ne da bi vam bilo treba skrbeti za izvajanje podrobnosti, na primer, katere senzorje ima tipkovnica in ali je brezžična ali ne itd. Vsaka podrobnost opisuje miško, vendar je preprosto tipkovnica ne glede na podrobnosti. Pravkar imate vmesnik za tipkovnico, ki je kazalec miške v tej situaciji in temu smo rekli imenovanje Enkapsulacija

Primerjava med nami med abstrakcijo in kapsulacijo (Infographics)

Spodaj je zgornjih 6 razlik med abstrakcijo in enkapsulacijo

Ključne razlike med abstrakcijo in enkapsulacijo

Pogovorimo se o nekaterih glavnih razlikah med abstrakcijo in enkapsulacijo:

Glavna razlika med abstrakcijo in enkapsulacijo je v tem, da problem rešuje abstrakcija na ravni zasnove in nivo aplikacije z enkapsulacijo. Abstrakcija vključuje skrivanje neželenih informacij, hkrati pa zagotavlja najpomembnejše informacije, medtem ko enkapsulacija pomeni skrivanje kode in informacij v eni napravi.

Abstrakcija vam omogoča, da se osredotočite na to, kaj izdelek naredi, namesto na to, medtem ko enkapsulacija pomeni notranje podrobnosti, kako predmet deluje. Kasneje ga lahko spremenite z boljšo tehniko, če notranje informacije ohranjate zaupne. Abstrakcija se osredotoča na zunanji pogled, na primer na premik avtomobila, medtem ko se Enkapsulacija osredotoča na notranji delovni ali notranji pogled.

Abstrakcija je v Javi podprta z vmesnikom in abstraktnim razredom, inkapsulacija pa je podprta s pomočjo npr. Javnih, zasebnih in varnih sistemov za spreminjanje dostopa. To je ločitev Java in OOP med enkapsulacijo in abstrakcijo. Spomnimo se, da abstrakcija rešuje vprašanje na ravni zasnove, vdelava pa v izvedbeno stopnjo. Oba za OOP programerja sta zelo pomembna, vendar je včasih težko razložiti. Kot sem že povedal, je pisanje kode in branje kode drugih najboljših načinov za učenje in obvladovanje objektno naravnanega programiranja.

Abstrakcija skriva izvajanje s pomočjo vmesnika in abstraktnega razreda, medtem ko Encapsulacija skriva podatke s pomočjo getterjev in setterjev.

Primerjalna tabela Abstrakcije vs Enkapsulacija

Spodaj je zgornja primerjava med abstrakcijo in enkapsulacijo:

Abstrakcija

Kapsulacija

Abstrakcija deluje na ravni zasnoveInkapsulacija deluje na ravni aplikacije
Abstrakcija se izvaja za skrivanje nepotrebnih podatkov in umik ustreznih podatkov.Inkapsulacija je mehanizem skrivanja kode in podatkov skupaj od zunanjega sveta ali zlorabe.
Poudarja, kakšno je delo predmeta, namesto kako predmet delujeOsredotoča se na notranje podrobnosti, kako predmet deluje. Nastavitve lahko naknadno spremenite.
Abstrakcija se osredotoča na ogled zunaj, na primer premik avtomobila.Kapsulacija se osredotoča na notranji delovni ali notranji ogled, na primer na izdelavo avtomobila.
Aplikacija je v Javi podprta z vmesnikom in abstraktnim razredomInkapsulacija je podprta z uporabo npr. Javnih, zasebnih in varnih sistemov za spreminjanje dostopa.
Na kratko, abstrakcija skriva izvajanje s pomočjo vmesnika in abstraktnega razreda.Na kratko, za enkapsulacijo se skrivajo podatki s pomočjo getterjev in seterjev.

Sklep

V tem članku smo videli, kaj je abstrakcija vs enkapsulacija in kakšna je razlika med njimi. Medtem ko sta obe ideji o skrivanju podatkov OOP, se med seboj precej razlikujeta. Zakriva osnovne informacije in poudarja kritične informacijske točke, da zmanjša kompleksnost in izboljša učinkovitost. Inkapsulirana koda je z novimi zahtevami zelo prilagodljiva in enostavna za spreminjanje.

Priporočeni članki

To je vodilo za največjo razliko med abstrakcijo in enkapsulacijo. Tukaj razpravljamo tudi o ključnih razlikah Abstrakcija vs Enkapsulacija z infografiko in primerjalno tabelo. Za več informacij si lahko ogledate tudi naslednje članke -

  1. Kaj je C ++
  2. CSS vs JavaScript
  3. C proti Python-u
  4. Vodič za kapsulacijo v PHP