Erinevus abstraktsiooni ja kapseldamise vahel

Abstraktsioon vs kapseldamine - mõlemad on peamised objektorienteeritud programmeerimise (OOP) kontseptsioonid, mis võimaldavad reaalseid objekte koodis ja programmis rakendada. Need on väga erinevad, kuna mõlemad käivad käsikäes. Ehkki nad on mõlemad tehniliselt lahutamatud, pole neil sõna-sõnalt midagi ühist. Peaaegu kogu kapseldamine on abstraktsioon, sest nad mõlemad maskeerivad midagi, kuid neil on õiglane osa erinevustest.

Mis on abstraktsioon?

Abstraktsioon on põhiline OOP-kontseptsioon, mis keskendub ainult objekti asjassepuutuvatele andmetele ja hõlmab kõiki ebaolulisi detaile, mida saab või ei saa kasutada geneeriliseks või spetsialiseeritud tegevuseks. See varjab tausta detaile ja tõstab esile olulised elemendid, et vähendada keerukust ja parandada tõhusust. See aitab domeenimudeli esitust lihtsustada. Abstraktsioon on rohkem ideede kui sündmuste kohta. See katab üksikasjad disaini tasemel, pakkudes kasutajatele funktsionaalsust. Abstraktsiooni võib nimetada ka saadud objektiks.

Võtame näite

Mõelgem siis mootorrattale Mehaanik proovib teie mootorratast remontida või öelda, et teie mootorratta teatud sektsioon olete kasutaja. Te olete kasutaja ja te ei soovi teada oma mootorratta eripära või seda, mis osa tegelikult purunenud on. Sind ei huvita; soovite lihtsalt oma mootorratta algses seisukorras, detailide pärast muretsemata. Te ütlesite mehaanikule, mida soovite, eraldades rakendusosa, mida nimetatakse abstraktsiooniks. Kõige tähtsam, mida tegite, oli mootorratta fikseerimine, selle asemel et detailidele keskenduda.

Mis on kapseldamine?

Teine OOP kapseldamise kontseptsioon seob andmed ja funktsioonid üheks komponendiks, samal ajal kui on kehtestatud teatud komponentidele juurdepääsu piiramine. Kapseldamine parandab teie rakenduse hooldatavust. See annab kasutajale süsteemi kasutamisel palju paindlikkust. See muudab kogu kodeerimisprotsessi lihtsamaks, kuna teid huvitab ainult see, mida teine ​​klass ei tee. See on üks peamisi OOP põhimõisteid, mis mähivad andmed ja andmed ühte ühikusse. See annab andmetele tervikliku terviklikkuse, kaitstes neid välismaailma eest. See peidab hõlpsalt välismaailma lisateavet.

Võtame näite

Ainult peate teadma seadme käitumist, ilma et peaksite muretsema selliste detailide juurutamise pärast nagu klaviatuuril olevad andurid ja kas see on juhtmevaba jne. Iga detail kirjeldab hiirt, kuid see on lihtsalt klaviatuur, olenemata detailist. Teil on lihtsalt klaviatuuri liides, mis on selles olukorras hiirekursor ja seda me kutsusime kapseldamiseks

Võrdlus abstraktsiooni ja kapseldumise vahel (infograafika)

Allpool on toodud 6 peamist erinevust abstraktsiooni vs kapseldamise vahel

Peamised erinevused abstraktsiooni ja kapseldamise vahel

Arutame mõned peamised erinevused abstraktsiooni vs kapseldamise vahel:

Peamine erinevus abstraktsiooni ja kapseldamise vahel on see, et probleemi lahendab abstraktsioon projekteerimistasandil ja rakenduse tase kapseldamise teel. Abstraktsioon hõlmab soovimatu teabe varjamist, pakkudes samal ajal kõige olulisemat teavet, samas kui kapseldamine tähendab koodi ja teabe varjamist ühes seadmes.

Abstraktsioon võimaldab teil keskenduda sellele, mida objekt teeb, selle asemel, kuidas see toimub, samas kui kapseldamine tähendab objekti töö sisemisi detaile. Kui hoiate sisemist teavet konfidentsiaalsena, saate seda hiljem parema tehnika abil muuta. Abstraktsioon keskendub vaatamisele väljast, näiteks auto nihutamisele, samas kui kapseldamine keskendub sisemisele tööle või sisemisele vaatamisele.

Abstraktsiooni toetatakse Java-s liidese ja abstraktse klassiga ning kapseldamist toetatakse nt avalike, privaatsete ja turvaliste juurdepääsu muutmissüsteemide abil. See on Java ja OOP eraldamine kapseldamise ja abstraktsiooni vahel. Tuletame meelde, et abstraktsioon lahendab probleemi kujundustasandil ja kapseldumine täitmistasandil. Mõlemad OOP-programmeerijate jaoks on väga olulised, kuid seda võib mõnikord olla raske seletada. Nagu ma enne ütlesin, on teiste jaoks koodi kirjutamine ja nende lugemine üks paremaid viise objektorienteeritud programmeerimise õppimiseks ja õppimiseks.

Abstraktsioon varjab teostust liidese ja abstraktse klassi abil, samas kui Encapsulation varjab andmeid getterite ja setterite abil.

Abstraktsiooni ja kapseldamise võrdlustabel

Allpool on toodud ülim võrdlus abstraktsiooni vs kapseldamise vahel:

Abstraktsioon

Kapseldamine

Abstraktsioon töötab disaini tasemelKapseldamine töötab rakendustasandil
Abstraktsiooni rakendatakse mittevajalike andmete peitmiseks ja asjakohaste andmete tagasivõtmiseks.Kapseldamine on koodi ja andmete välismaailmast koos peitmise või väärkasutamise mehhanism.
See toob esile selle, mis on objekti töö selle asemel, kuidas objekt töötabSee keskendub sisemistele üksikasjadele, kuidas objekt töötab. Seadeid saab hiljem muuta.
Abstraktsioon keskendub väljastpoolt vaatamisele, näiteks auto nihutamisele.Kapseldamine keskendub sisemisele tööle või sisemisele vaatamisele, näiteks auto tootmisele.
Abstraktsiooni toetatakse Java-s liidese ja abstraktse klassigaKapseldamist toetatakse näiteks avalike, era- ja turvalise juurdepääsu muutmissüsteemide abil.
Lühidalt - abstraktsioon peidab teostust liidese ja abstraktse klassi abil.Lühidalt - kapseldamine varjab andmeid getterite ja setterite abil.

Järeldus

Selles artiklis nägime, mis on Abstraktsioon vs kapseldamine ja erinevus nende vahel. Kuigi mõlemad on andmete peitmise OOP-ideed, on nad üksteisest üsna erinevad. See varjab taustteavet ja toob välja kriitilised teabepunktid, et vähendada keerukust ja parandada tõhusust. Uute nõudmistega on kapseldatud kood väga paindlik ja hõlpsasti muudetav.

Soovitatavad artiklid

See on juhend peamiseks erinevuseks abstraktsiooni vs kapseldamise vahel. Siin käsitleme ka peamisi erinevusi abstraktsiooni vs kapseldamise osas infograafikaga ja võrdlustabelit. Võite lisateabe saamiseks vaadata ka järgmisi artikleid -

  1. Mis on C ++
  2. CSS vs JavaScript
  3. C vs Python
  4. Kapseldamise juhend PHP-s

Kategooria: