Ero abstraktion ja kapseloinnin välillä

Abstraktio ja kapselointi ovat molemmat perusobjektiohjelmoinnin (OOP) käsitteitä, joiden avulla voit toteuttaa reaalimaailman objektit ohjelmiin ja koodeihin. Vaikka molemmat kulkevat käsi kädessä, ne ovat hyvin erilaisia ​​toisistaan. Vaikka jokainen menetelmä on kapselointi, se on myös abstraktio. Yksinkertaisesti sanottuna, kun laitat erilaisia ​​asioita kokonaisuuden luomiseksi, luot itse konseptin - abstraktin. Vaikka molemmat ovat teknisesti erottamattomia, heillä ei ole kirjaimellisesti mitään yhteistä. On melkein totta, että jokainen kapselointi on abstraktio, koska he molemmat piilottavat jotain, mutta heillä on kohtuullinen osuutensa eroista.

Mikä on abstraktio?

Abstraktio on perusopetuksen käsite, joka keskittyy vain kohteen asiaankuuluviin tietoihin ja piilottaa kaikki merkityksettömät yksityiskohdat, jotka saattavat olla tai eivät koske yleistä tai erikoistunutta käyttäytymistä. Se piilottaa taustatiedot ja korostaa olennaisia ​​kohtia monimutkaisuuden vähentämiseksi ja tehokkuuden lisäämiseksi. Pohjimmiltaan abstraktio on ohjelmointityökalu monimutkaisuuden hallitsemiseksi. Abstraktio keskittyy ideoihin eikä tapahtumiin. Se piilottaa yksityiskohdat suunnittelutasolla tarjoamalla toiminnallisuutta käyttäjille. Tuloksena olevaa kohdetta voidaan kutsua myös abstraktioksi. Ohjelmoija varmistaa, että nimettyyn kokonaisuuteen sisältyy kaikki olennaiset näkökohdat eikä mikään merkityksettömistä.

Otetaan reaalimaailman esimerkki abstraktiosta. Tarkastellaan tapausta, jossa on ajoneuvo, joka tässä tapauksessa on sinun ajoneuvosi. Mekaanikko yrittää korjata auton tai sanotaan tietyn osan autostasi. Tässä olet käyttäjä ja et halua päästä autosi yksityiskohtiin tai mihin osaan todella rikkoi. Et oikeastaan ​​välitä noista asioista; haluat vain, että ajoneuvo palautetaan alkuperäisessä kunnossa huolehtimatta yksityiskohdista. Joten, sanoit itse mekaanikolle haluamasi erottamalla toteutuksen osan. Tämä on abstraktiota. Olet keskittynyt välttämättömään asiaan, joka on auton korjaaminen, sen sijaan, että keskityisit yksityiskohtiin.

Mikä on kapselointi?

Kotelointi on jälleen yksi OOP-konsepti, joka sitoo tiedot ja toiminnot yhdeksi komponentiksi rajoittaen pääsyä joihinkin komponentteihin. Se on yksi OOP: n peruskäsitteistä, joka käärii tiedot yhdeksi yksiköksi. Teknisesti sanottuna kapselointi tarkoittaa ominaisuuksien piilottamista suojamuuttujille ulkopuolelta, jotta muutos sovelluksen yhdessä osassa ei vaikuta muihin osiin. Päinvastoin, tekemällä tietoja avoimemmiksi, riskit väärinkäyttää tietoja. Se tarjoaa tietojen perusaineiston suojaamalla niitä ulkomaailmalta. Yksinkertaisesti sanottuna se piilottaa lisätiedot ulkomaailmasta.

Otetaan esimerkki Bluetooth-hiirestä. Sinun on tiedettävä vain laitteen käyttäytymisestä huolehtimatta toteutuksen yksityiskohdista, kuten millaisista antureista hiiri on, onko se langaton vai ei, jne. Jokainen yksityiskohta kuvaa hiiren, yksityiskohdista riippumatta, se on vain hiiri. Tarvitset vain käyttöliittymän hiiren käyttämiseen, mikä tässä tapauksessa on hiiren osoitin. Tämä on kapselointia.

Ero abstraktion ja kapseloinnin välillä

Vaikka molemmat ovat OOP: hen liittyviä peruskäsitteitä ja ne ovat teknisesti erottamattomia, niillä on kuitenkin erojaan monissa suhteissa.

  1. Erot abstraktion ja kapseloinnin "määritelmässä" - Abstraktio on perusopetuksen käsite, joka korostaa kaikkia objektin olennaisia ​​piirteitä piilottamalla merkityksettömät yksityiskohdat tehokkuuden lisäämiseksi ja monimutkaisuuden poistamiseksi. Kapselointi puolestaan ​​on tietojen piilotusmekanismi, joka kääri tiedot kapseliin rajoittaakseen pääsyä ulkomaailmaan..
  2. Erot toiminnallisuudessa abstraktiosta ja kapseloinnista- Abstraktio on tietojen piilotusmekanismi, joka korostaa vain olennaisia ​​piirteitä monimutkaisten ohjelmien yksinkertaistamiseksi, kun taas kapselointi on menetelmä tietojen ja koodien sitomiseksi yhdeksi kokonaisuudeksi. Ideana on suojata toteutuksen yksityiskohdat ulkoiselta pääsyltä.
  3. Erot abstraktion ja kapseloinnin "toteutuksessa" - Abstraktio toteutetaan abstraktilla luokalla ja käyttöliittymällä, kun taas kapselointi toteutetaan pääsymuokkaimilla. Tietojen kapselointiin käytetään viittä tyyppiä muokkaimia: yksityinen, julkinen, sisäinen, suojattu ja suojattu sisäinen.
  4. Erot konseptissa abstraktiosta ja kapseloinnista- Abstraktin taustalla on keskittyä mihin pikemminkin kuin miten. Kotelointi piilottaa sisäisen mekaniikan miten. Esimerkiksi, kun ajat autoa, tiedät tarkalleen, mitä jarrupoljin tekee, mutta et ehkä tiedä koko sen takana olevaa mekanismia, koska tiedot on kapseloitu.
  5. Erot abstraktion ja kapseloinnin “esimerkissä” - Otetaan esimerkki älypuhelimesta. Tiedät mitä se tekee, mutta et ehkä tiedä miten se tekee sen mitä tekee. Pidät huolta vain näyttöruudusta ja näppäimistön painikkeista sen sijaan, että huolehtisit sen sisäisistä piireistä. Tässä älypuhelin on abstrakti, jossa sisäiset toteutustiedot kapseloidaan.

Vedenotto vs. kapselointi vertailutaulukkoon

Abstraktio kapselointi
Siinä käsitellään vain merkityksellisiä yksityiskohtia piilottamalla merkityksettömiä yksityiskohtien vähentämiseksi ja siten tehokkuuden lisäämiseksi. Se sitoo tiedot ja tiedot yhdeksi kokonaisuudeksi tietojen suojaamiseksi ulkoisilta lähteiltä.
Se viittaa ajatukseen piilottaa tiedot, joita ei vaadita esitystarkoituksiin. Se piilottaa tiedot ja koodin rajoittaaksesi ei-toivottua pääsyä.
Se keskittyy mihin pikemminkin kuin miten. Se piilottaa sisäisen mekaniikan siitä, kuinka se tekee jotain.
Se piilottaa tarpeettomat yksityiskohdat suunnittelutasolla. Se myös piilottaa yksityiskohdat, mutta toteutustasolla.
Tiedot ja tiedot erotetaan asiaankuuluvista tiedoista. Tiedot on piilotettu kapseliin, jotta niitä pääsee käsiksi.
Se käsittelee ideoita eikä tapahtumia. Ajatuksena on suojata tietoja ulkomaailmalta.
Se toteutetaan abstraktin luokan ja käyttöliittymän avulla. Se toteutetaan suojattujen, yksityisten ja paketti-yksityisten käyttöoikeuksien muokkainten avulla.

Yhteenveto

Vaikka molemmat ovat tietojen piilottamiseen liittyviä OOP-käsitteitä, ne eroavat toisistaan ​​melko hyvin. Abstraktio liittyy myös piilottamiseen kuten kapselointi, mutta vaikka entinen piilottaa monimutkaisuuden, jälkimmäinen pitää kapseloidut tiedot hallitsemalla pääsyä niihin. Abstraktiolla tarkoitetaan vain välttämättömien piirteiden esittämisen käsitettä piilottamalla merkityksettömät yksityiskohdat sovelluksen monimutkaisuuden vähentämiseksi ja siten lisäämällä tehokkuutta. Kapselointi puolestaan ​​tarkoittaa käsitettä piilottaa kaikki ohjelman sisäiset mekaniikat tietojen suojaamiseksi ei-toivotulta käytöltä. Se sitoo tiedot yhdeksi komponentiksi rajoittamalla pääsyä muihin komponentteihin.