Kotelointi vs. abstraktio
Kotelointi ja abstraktio ovat kaksi erilaista, mutta toisiinsa liittyvää käsitettä, jotka löytyvät OOP (Object Oriented Programming) -kielistä. Kapselointi on käsite tietojen ja käyttäytymisen yhdistämisestä yhdeksi kokonaisuudeksi. Toisaalta abstraktio on prosessi, jolla esitellään, miten entiteetti käyttäytyy \ näyttää toisin kuin miten se toteutetaan..
Mikä on kapselointi?
Kapselointi on prosessi, jonka avulla tiedot kääritään ja toimivat yhdeksi kokonaisuudeksi. Tämä tarkoittaa lähinnä sitä, että tietojen käyttämiseen olisi käytettävä tiettyjä ennalta määritettyjä menetelmiä. Toisin sanoen kapseloidut tiedot eivät ole suoraan saatavissa. Tämä varmistaa, että datan eheys säilyy, koska käyttäjä ei pääse suoraan tietoihin ja muokata niitä haluamallaan tavalla. Käyttäjät saavat tai asettavat data-arvot vain menetelmillä, jotka ovat julkisesti käyttäjien käytettävissä. Nämä menetelmät tarjoavat yleensä tietojen validoinnin, jotta vain asianmukaisessa muodossa olevat tiedot voidaan lisätä kenttiin. Siksi kapseloinnin hyödyt ovat kolminkertaiset. Kapseloinnin avulla ohjelmoija voi tehdä luokan kenttiä vain luku- tai kirjoitusvaihtoehtoja. Toiseksi luokalla voi olla täydellinen hallinto sen kentälle tallennetusta. Lopuksi, luokan käyttäjien ei tarvitse huolehtia siitä, kuinka sen tietoja tallennetaan. Java-ohjelmoijassa ohjelmoija voi julistaa kaikki esiintymämuuttujat yksityisiksi ja tarjota hankinta- ja asetusmenetelmät (jotka ovat julkisia) yksityisten kenttien käyttämiseen ja muokkaamiseen.
Mikä on abstraktio?
Abstraktio on prosessi, jossa esitystiedot erotetaan toteutuksen yksityiskohdista. Tämä tehdään niin, että kehittäjä vapautetaan monimutkaisemmista toteutustiedoista. Sen sijaan ohjelmoija voi keskittyä esityksen tai entiteetin käyttäytymistietoihin. Yksinkertaisesti sanottuna abstraktio keskittyy siihen, kuinka tiettyä kokonaisuutta voidaan käyttää sen sijaan, miten se toteutetaan. Abstraktio piilottaa käytännössä toteutuksen yksityiskohdat, joten vaikka toteutustapa muuttuisi ajan myötä, ohjelmoijan ei tarvitse huolehtia siitä, miten se vaikuttaa hänen ohjelmaansa. Järjestelmä voidaan tiivistää useissa kerroksissa tai tasoilla. Esimerkiksi matalan tason abstraktiotasot paljastavat laitteistotiedot, kun taas korkean tason abstraktiot paljastavat vain kokonaisuuden liiketoimintalogiikan. Termiä abstraktio voidaan käyttää viitaten sekä kokonaisuuteen että prosessiin, ja tämä aiheuttaa jonkin verran sekaannusta. Prosessina abstraktio tarkoittaa olennaisten yksityiskohtien erottamista ottamatta huomioon kohteen tai esineiden ryhmän olennaisia yksityiskohtia, kun taas kokonaisuutena abstraktio tarkoittaa mallia tai näkymää kokonaisuudesta, jossa on vain olennaiset yksityiskohdat. Java-ohjelmoija voi käyttää avainsanaa abstrakti ilmoittaa luokan abstraktiksi kokonaisuudeksi, joka edustaa reaalimaailman entiteetin olennaisia määritteleviä ominaisuuksia.
Mikä on ero kapseloinnin ja abstraktion välillä??
Vaikka kotelointi ja abstraktio ovat läheisesti toisiinsa liittyviä käsitteitä, jotka löytyvät olio-ohjelmointikielisistä, niillä on keskeisiä eroja. Abstraktio on tekniikka, joka auttaa meitä tunnistamaan, minkä pitäisi olla näkyvää ja mikä piilotettavissa. Kapselointi on tekniikka tietojen pakkaamiseksi siten, että se tekee näkyväksi sen, minkä pitäisi olla näkyvä, ja piilottaa sen, mikä tulisi piilottaa. Toisin sanoen kapselointi voidaan tunnistaa yhdeksi askeleksi abstraktion ulkopuolella. Vaikka abstraktio pienentää reaalimaailman objektin sen olennaisiin määritteleviin ominaisuuksiin, kapselointi laajentaa tätä ajatusta mallintamalla ja linkittämällä kyseisen entiteetin tämä toiminnallisuus.