Abstraktio ja kapselointi ovat olio-ohjelmoinnin tärkeimpiä käsitteitä. Termi "abstraktio" liittyy menetelmään piilottaa ei-toivotut tiedot ja "kapselointi" liittyy tietojen peittämiseen yhden yksikön alle. Abstraktiossa painopiste on kohteen toiminnassa. Kapseloinnissa sisäiset yksityiskohdat ja objektin toiminnan mekaniikka on piilotettu.
Abstraktio vs kapselointi
Ero abstraktion ja kapseloinnin välillä on se, että abstraktio tarkoittaa merkityksellisen ja valikoivan tiedon hankkimista suuremmasta tietopankista, kun taas kapselointi on tapa pitää tiedot yhtenä kokonaisuutena ja piilottaa se. Abstraktiota suorittavat objektit kapseloidaan, mutta kapseloivia objekteja ei tarvitse abstraktoida.
Abstraktio-toiminto piilottaa käyttäjältä tarpeettomat tiedot. Se valitsee tiedot suuremmasta tietojoukosta. Tämä toiminto mahdollistaa vain objektiin liittyvien tietojen valinnan ja näyttämisen. Se auttaa meitä päättämään, minkä tiedon tulee olla näkyvissä ja mitä pitää piilottaa käyttäjältä.
Kapselointitoiminto käsittelee tiedot ja sitä käyttävän koodin yhdeksi yksiköksi. Sitä voidaan olettaa suojakuoreksi, joka estää koodin satunnaisen käytön. Se tekee monimutkaisesta järjestelmästä käyttäjien helpompia ymmärtää ja työskennellä ilman huolta järjestelmän sisäisistä yksityiskohdista ja mekaniikasta.
Abstraktion ja kapseloinnin vertailutaulukko
Vertailuparametrit | Abstraktio | Kapselointi |
Toiminta | Se on prosessi, jossa hankitaan valikoivaa tietoa suuremmasta tietopankista. | Se on tapa säilyttää tietoja yhtenä kokonaisuutena. |
Toteutuksen taso | Ongelmat ratkeavat suunnittelutasolla tai kun käyttäjä käyttää käyttöliittymää. | Ongelmat ratkeavat, kun koodi suoritetaan viimeisen tason aikana. |
Toteutustavat | Abstraktien luokkien ja rajapintojen menetelmää käytetään abstraktion toteuttamiseen. | Se toteutetaan käyttämällä pääsyn muokkaajaa myöntämällä joko yksityinen tai julkinen pääsy. |
Tietojen piilottamiseen käytetyt menetelmät | Abstrakteja luokkia ja rajapintoja käytetään piilottamaan toteutusesteitä. | Getters and setters -menetelmää käytetään tietojen piilottamiseen. |
Toimintojen välinen suhde | Objektit, jotka auttavat viemään abstraktiota eteenpäin, on kapseloitu. | Kapselointia suorittavia objekteja ei tarvitse abstraktoida. |
Mikä on abstraktio?
Tietojen abstraktiossa vain olennaiset yksityiskohdat näkyvät käyttäjälle. Abstraktien luokkien ja rajapintojen menetelmää käytetään abstraktion toteuttamiseen. Se valitsee tiedot suuremmasta poolista ja luo sitten samantyyppisiä luokkia. Luokat luodaan kapseloimalla, kun ryhmitellään samanlaisia tietoja saman tietotyypin ja funktioiden muodossa. Luokassa on vapaus päättää, mikä datafunktio näytetään käyttäjälle ja mikä ei.
Käyttöoikeusmäärityksiä käytetään abstraktion toteuttamiseen ja objektien rajoitusten täytäntöönpanoon. Abstraktio auttaa käyttäjää luomaan korkean tason koodeja, rajoittaa koodin päällekkäisyyttä ja laajentaa tiedon uudelleenkäytettävyyden kriteeriä.
Asianmukainen ja valikoiva tietojen esittäminen yleisölle varmistaa sovelluksen tai ohjelman turvallisuuden. Ohjelman toimintoja voidaan muuttaa ja päivittää meidän puoleltamme vaikuttamatta loppukäyttäjään. Abstraktio mahdollistaa korkean tason ohjelmoinnin ja koneesityksen.
Ongelmat käydään läpi ja ratkaistaan suunnittelu- (suunnittelu)tasolla ja käyttöliittymävuorovaikutuksen aikana. Toteutuksen esteiden piilottamiseen käytetään abstraktien luokkien ja rajapintojen menetelmiä. Koodissa olevat objektit, jotka on tarkoitus abstraktoida edelleen, kapseloidaan. Abstraktio keskittyy koodin toiminnan tuntemiseen eikä käytettyyn logiikkaan.
Mikä on kapselointi?
Tiedon ja sitä toimivan koodin käsittely yhdeksi yksiköksi on kapselointi. Yksittäinen yksikkö sisältää dataa, joka suorittaa samat toiminnot, ja siksi sitä kutsutaan luokkaksi. Kapseloinnin avulla ohjelmia tai sovelluksia on paljon helpompi käyttää ja ymmärtää. Käyttäjän ei tarvitse tietää järjestelmän sisäisiä yksityiskohtia ja mekaniikkaa voidakseen käyttää koodia.
Pääsymuuttajaa käytetään järjestelmässä, joka päättää myöntää pääsyn tietoihin yleisölle tai rajoitetulle ihmisryhmälle yksityiseen käyttöön. Kapseloinnissa data on suljettu ja suojattu maailmalta kuin kapseli, jotta sitä ei käsitellä.
Voidaan sanoa, että kapselointi on eräänlainen abstraktio, mutta se on enemmän tietoturvakohtaista tiedon piilottamiseen. Se toteutetaan lopullisen tason aikana ja getters and setter -menetelmällä. Tämä menetelmä antaa muiden lukea ja muokata yksityisten jäsenten arvoa vain, jos heille on myönnetty käyttöoikeus.
Tietojen jäsenet on merkitty yksityisiksi, julkisiksi tai suojatuiksi myönnetyn käyttöoikeuden mukaan. Kääntäjä tekee oletusarvoisesti kaikki datajäsenet ja toiminnot yksityisiksi, mutta niitä voidaan muuttaa käyttöoikeusmuuntimen avulla.
Tärkeimmät erot abstraktion ja kapseloinnin välillä
Johtopäätös
Tietojen abstraktiossa käyttäjälle näkyvät vain olennaiset yksityiskohdat, kun taas kapseloinnissa tiedot käsitellään yhdeksi yksiköksi. Yksittäistä yksikköä, joka sisältää samoja toimintoja suorittavaa dataa, kutsutaan luokkaksi. Tiedot valitaan laajasta poolista ja sitten luodaan samantyyppisiä luokkia.
Kapselointi mahdollistaa ohjelmien tai sovellusten helpon ymmärtämisen ja käytettävyyden. Luokat luodaan kapseloimalla, kun ryhmitellään samanlaisia tietoja saman tietotyypin ja funktioiden muodossa. Luokassa on vapaus päättää, mikä datafunktio näytetään käyttäjälle ja mikä ei.
Abstraktio auttaa käyttäjää luomaan korkean tason koodeja, rajoittaa koodin päällekkäisyyttä ja laajentaa tiedon uudelleenkäytettävyyden kriteeriä. Voidaan sanoa, että kapselointi on eräänlainen abstraktio, mutta se on enemmän tietoturvakohtaista tiedon piilottamiseen.