Abstraktsiooni ja kapseldamise erinevus
Peamised erinevused abstraktsiooni ja kapseldamise vahel
- Abstraktsioon näitab ainult kasulikke andmeid, pakkudes kõige vajalikumaid üksikasju, samas kui kapseldamine mähib vajaliku teabe koodi ja andmeid.
- Abstraktsioon keskendub peamiselt sellele, mida tuleks teha, samas kui kapseldamine keskendub sellele, kuidas seda teha.
- Abstraktsioon peidab keerukuse, andes teile abstraktsema pildi, samas kui kapseldamine peidab sisemise töö, et saaksite seda hiljem muuta.
- Abstraktsioon aitab teil programmi jagada paljudeks sõltumatuteks osadeks, samas kui kapseldamist on uute nõuetega lihtne muuta.
- Võrreldes kapseldamist ja abstraktsiooni, lahendab abstraktsioon probleemid disaini tasemel, kapseldamine aga rakendustasandil.
- Abstraktsioon peidab koodis leiduvad ebaolulised üksikasjad, samas kui kapseldamine aitab arendajatel kogu koodi hõlpsalt korraldada.

Abstraktsiooni definitsioon
Abstraktsioon on OOP kontseptsioon, mis keskendub ainult objekti asjakohastele andmetele. See peidab tausta üksikasjad ja rõhutab keerukuse vähendamiseks ja tõhususe suurendamiseks olulisi andmepunkte. Üldiselt säilitab see ainult seda teavet, mis on selle konkreetse protsessi jaoks kõige olulisem. Abstraktsioon Meetod keskendub peamiselt ideele, mitte tegelikule toimimisele.
Kapseldamise definitsioon
Kapseldamine on meetod, mis muudab keeruka süsteemi lõppkasutajatele hõlpsamini käsitsetavaks. Kasutaja ei pea muretsema süsteemi sisemiste detailide ja keerukuse pärast. Kapseldamine on protsess, mille käigus koondatakse andmed ja kood, mis toimivad andmetel ühtseks üksuseks. Võite eeldada, et see on kaitseümbris, mis peatab juhusliku juurdepääsu väljaspool seda ümbrist määratletud koodile.

Abstraktsiooni ja kapseldamise erinevus
Siin on peamine erinevus abstraktsiooni ja kapseldamise vahel:
Parameeter | Abstraktsioon | Kapseldamine |
---|---|---|
Kasuta | Abstraktsioon lahendab probleemi ja probleemid, mis tekivad projekteerimisetapis. | Kapseldamine lahendab rakendusetapis tekkiva probleemi ja probleemi. |
Keskenduma | Abstraktsioon võimaldab teil keskenduda sellele, mida objekt teeb, mitte sellele, kuidas ta seda teeb | Kapseldamine võimaldab peita koodi ja andmed ühte üksusesse, et kaitsta andmeid välismaailma eest. |
Täitmine | Abstraktsiooni saate kasutada liidese ja abstraktsuse klassi abil. | Kapseldamist saate rakendada juurdepääsu modifikaatorite (avalik, kaitstud ja privaatne) abil. |
Fookused | Keskenduge peamiselt sellele, mida tuleks teha. | Keskenduge eelkõige sellele, kuidas seda tuleks teha. |
taotlus | Disaini tasemel. | Rakendustaseme ajal. |
Miks on vaja abstraktsiooni?
Siin on peamised põhjused, miks objektorienteeritud programmeerimise jaoks on vaja abstraktsiooni:
- Aitab lihtsustada domeenimudelite esitust.
- Abstraktsioon peidab koodist leitud ebaolulised üksikasjad.
- Abstraktsioon aitab teil programmi jagada paljudeks sõltumatuteks kontseptsioonideks.
- Pakub suurimat paindlikkust ADT (Abstract Data Type) objektide kasutamisel erinevates olukordades
Miks on vaja kapseldamist?
Kapseldamise peamised eelised on
- See parandab rakenduse hooldatavust.
- Pakub kasutajale paindlikkust süsteemi väga lihtsaks kasutamiseks
- Aitab arendajatel koodi paremini organiseerida
- Muudab üldise kodeerimisprotsessi lihtsamaks, kuna teid huvitab ainult see, mida teine klass teeb, mitte see, kuidas ta seda teeb
- See meetod aitab arendajatel olla "objektiivsem" ja tulemustele orienteeritud.
- Kapseldatud kood on üsna paindlik ja seda on lihtne uute nõuetega muuta.
- Kapseldamine muudab ühikutestimise lihtsaks.
- See võimaldab teil vähendada moodulite ühendamist ja suurendab ühtekuuluvust moodulis, kuna kõik ühe asja osad on kapseldatud ühte kohta.
- Kapseldamine aitab teil koodi osa muuta, ilma et see mõjutaks teisi koodi osi.
- Parandab rakenduse koodi loetavust
- Täiustatud turvalisus ja muudab rakenduse hooldamise lihtsamaks
- Kapseldamise liides võimaldab ainult täpselt määratletud suhtlust.
Abstraktsiooni näide
Oletame, et soovite luua pangarakenduse ja teil palutakse koguda kogu teave oma kliendi kohta. On tõenäoline, et saate kliendi kohta järgmise teabe.

Kuid kogu ülaltoodud teave pole pangarakenduse loomiseks vajalik.
Seega peate sellest kogumist valima oma pangarakenduse jaoks ainult kasuliku teabe. Andmed, nagu nimi, aadress, maksuteave jne, on pangarakenduse jaoks mõistlikud.

Kuna oleme klienditeabe toonud/eemaldanud/valinud suuremast kogumist, nimetatakse seda protsessi abstraktsiooniks.
Siiski saab sama teavet pärast ekstraheerimist kasutada paljude rakenduste jaoks. Näiteks saate kasutada samu andmeid haiglasse kandideerimiseks, tööportaali rakenduseks, valitsuse andmebaasi jne jaoks, vähese muudatusega või ilma muudatusteta. Seega saavad sellest teie põhiandmed. See on abstraktsiooni eelis.
Kapseldamise näide
Võtame näiteks mobiilseadme. Mobiilseadmete abil saate täita erinevaid funktsioone, nagu pildistamine, sõnumite saatmine, video/heli salvestamine, juurdepääs veebile ja palju muud.
Eespool mainitud funktsioonid on enamiku nutitelefoni funktsioonid. Siiski ei pea te enne selle programmi kasutamist mõistma nende funktsioonide sisemisi toimimise üksikasju. Näiteks ei pea te teadma, kuidas teie kaamera arvutab gammakorrektsiooni või tuvastab pildil inimese näo. Peate lihtsalt õppima tarkvaraliidese. See on kapseldamine.