Abstraktio ja kapselointi

Anonim

Abstraktio ja kapselointi ovat molempia perusobjektiivisia ohjelmointiohjelmia (OOP), joiden avulla voit toteuttaa reaalimaailman esineitä ohjelmiin ja koodeihin. Vaikka molemmat käsi kädessä, ne ovat hyvin erilaisia ​​toisistaan. Vaikka jokainen tapa on kapselointi, se on myös abstraktio. Yksinkertaisesti sanottuna, kun laitat eri asioita yhteen luodaksesi kokonaisuuden, sinä itse asiassa luo käsite - abstrakti. Vaikka molemmat ovat teknisesti erottamattomia, niillä ei ole kirjaimellisesti mitään yhteistä. On lähes totta, että jokainen kapselointi on abstrakti, koska molemmat piilostavat jotain, mutta heillä on tasapuolinen osuus eroista.

Mikä on Abstraktio?

Abstraktio on perus OOP-konsepti, joka keskittyy vain esineen asiaankuuluviin tietoihin ja piilottaa kaikki merkityksettömiä yksityiskohtia, jotka voivat olla tai eivät välttämättä ole geneerisiä tai erikoistuneita käyttäytymisiä. Se piilottaa taustatiedot ja korostaa olennaisia ​​näkökohtia monimutkaisuuden vähentämiseksi ja tehokkuuden lisäämiseksi. Pohjimmiltaan abstraktio on ohjelmointityökalu monimutkaisuuden hallitsemiseksi. Abstraktio keskittyy ideoihin pikemminkin kuin tapahtumiin. Se piilottaa yksityiskohdat suunnittelutasolla tarjoamalla toimivuuden käyttäjille. Tuloksena olevaa kohdetta voidaan kutsua myös abstraktioksi. Ohjelmoija varmistaa, että nimetty yksikkö sisältää kaikki olennaiset näkökohdat ja ei mitään merkityksettömiä.

Otetaan todellinen esimerkki abstraktista. Tarkastellaan ajoneuvon tapausta, joka tässä tapauksessa on ajoneuvosi. Mekaanikko yrittää korjata auton tai sanoa tietyn osan autoestasi. Täällä olet käyttäjä ja et halua päästä autosi yksityiskohtiin tai mikä osa todellisuudessa rikki. Et todellakaan välitä näistä asioista; vain haluat ajoneuvon takaisin alkuperäiseen tilaansa huolimatta yksityiskohdista. Joten, sinä itse asiassa kerroit mekaaniselle, mitä haluat, jakamalla toteutusosan. Tämä on abstraktio. Sinä keskityitte kaikkein olennaiseen asiaan, joka saa autosi korjattuasi pikemminkin kuin tarkentamalla ominaisuuksia.

Mikä on kapselointi?

Kapselointi on vielä yksi OOP-konsepti, joka sitoo tiedot ja toiminnot yhdeksi komponentiksi samalla kun rajoittaa pääsyä joihinkin komponentteihin. Se on yksi OOP: n tärkeimmistä peruskäsitteistä, joka kerää tietoja ja tietoja yhdestä yksiköstä. Teknisesti kapselointi tarkoittaa piilottamalla attribuutteja suojavaihtoehtoihin ulkopuolelta, joten sovelluksen yhden osan muuttaminen ei vaikuta muihin osiin. Päinvastoin, tietojen antaminen avoimemmaksi vaarantaa tietojen väärinkäytön. Se tarjoaa perustietoa tietojen suojaamiselta ulkopuoliselta maailmalta. Yksinkertaisesti se piilottaa ylimääräiset yksityiskohdat ulkomaailmasta.

Otetaan esimerkki Bluetooth-hiirestä. Sinun tarvitsee vain tietää laitteen käyttäytyminen huolimatta siitä, millaisia ​​antureita hiirellä on, onko se langaton vai ei. Jokainen yksittäinen kuvaus kuvaa hiirtä, mutta yksityiskohdista riippumatta se on vain hiirtä. Tarvitset vain käyttöliittymän käyttää hiirtä, joka tässä tapauksessa on hiiren osoitin. Tämä on kapselointi.

Abstraktien ja kapseloinnin välinen ero

Vaikka molemmat ovat OOP: iin liittyviä perustavanlaatuisia käsitteitä, ja ne ovat teknisesti erottamattomia, niillä on edelleen eroja monessa suhteessa.

  1. Erotus abstraktio ja kapselointi "Määritelmä" - Abstraktio on perustavanlaatuinen OOP-käsite, joka korostaa esineen kaikkia olennaisia ​​näkökohtia piilottamalla merkityksettömiä yksityiskohtia tehokkuuden lisäämiseksi ja monimutkaisuuden poistamiseksi. Kapselointi, toisaalta, on data hidastus mekanismi, joka käärii dataa ja tietoa kapselissa rajoittaa pääsyn ulkomaailmasta.
  2. Erot "toiminnallisuudesta" Abstraktio ja kapselointi- Abstraktio on tietojen hidastusmekanismi, joka korostaa vain olennaisia ​​piirteitä monimutkaisten ohjelmien yksinkertaistamiseksi, kun taas kapselointi on menetelmä, jolla datan ja koodien sitominen yhdeksi kokonaisuudeksi. Ajatuksena on suojata toteutuksen yksityiskohdat ulkopuolelta.
  3. Erokset abstrakti- ja kapselointimallin "toteutuksesta" - Abstraktio toteutetaan abstraktilla luokalla ja rajapinnalla, kun taas kapselointi toteutetaan käyttämällä modifikaattoreita. Viisi muuntelijametyyppiä koteloidaan tietoja: yksityinen, julkinen, sisäinen, suojattu ja suojattu sisäinen.
  4. Erot "Concept" Abstraktio ja kapselointi- Vedonlyönnin ajatus on keskittyä siihen, mitä pikemminkin kuin miten. Kapselointi piilottaa sen sisäisen mekaniikan. Esimerkiksi kun ajet auton, tiedät tarkalleen mitä jarrupoljin tekee, mutta et voi tietää koko mekanismia sen takana, koska tiedot ovat kapseloituja.
  5. Erokset abstrakti- ja kapselointimallin "esimerkissä" - Otetaan esimerkki älypuhelimesta. Tiedät mitä se tekee, mutta et voi tietää, miten se tekee sen mitä se tekee. Sinä vain välität näytön ja näppäimistön painikkeita sen sijaan, että huolehdit sen sisäisestä piiriin. Tässä älypuhelin on abstrakti, jossa sisempi toteutus yksityiskohtiin on kapseloitu.

Abstraktio vs. kapselointi vertailutaulukkoon

Abstraktio kapselointi
Se käsittelee vain asiaankuuluvia yksityiskohtia piilottamalla merkityksettömiä, mikä vähentää monimutkaisuutta, mikä lisää tehokkuutta. Se sitoo tiedot ja tiedot yhtenä kokonaisuutena, joka suojaa tietoja ulkoisilta lähteiltään.
Siinä viitataan ajatukseen piilottaa tiedot, joita ei tarvita esittelytarkoituksiin. Se piilottaa tiedot ja koodin rajoittamattoman pääsyn rajoittamiseksi.
Se keskittyy siihen, mitä pikemminkin kuin miten. Se piilottaa sisäisen mekaniikan miten se tekee jotain.
Se piilottaa tarpeettomat yksityiskohdat suunnittelutasolla. Se myös piilottaa yksityiskohtia, mutta toteutustasoa.
Tiedot ja tiedot erotetaan asiaankuuluvista tiedoista. Tiedot piilotetaan kapselin sisään lähelle.
Se käsittelee ajatuksia pikemminkin kuin tapahtumia. Ajatus on suojata tietoja ulkopuolelta.
Se on toteutettu abstraktilla luokalla ja käyttöliittymällä. Se on toteutettu käyttämällä suojattuja, yksityisiä ja paketti-yksityisiä moduuleja.

Yhteenveto

Vaikka molemmat ovat OOP-käsitteitä, jotka liittyvät tietojen piilottamiseen, ne ovat melko erilaisia ​​toisistaan. Abstraktio liittyy myös piilottamiseen kuin kapselointi, mutta kun entinen piilottaa monimutkaisuuden, jälkimmäinen pitää tiedot, jotka se encapsulates by controlling access to them. Abstraktio viittaa käsitteeseen, joka edustaa vain välttämättömiä ominaisuuksia piilottamalla merkityksettömiä yksityiskohtia sovelluksen monimutkaisuuden vähentämiseksi, mikä lisää tehokkuutta. Encapsulation puolestaan ​​viittaa käsitteen piilottaa kaikki sisäinen mekaniikka ohjelman suojelemiseksi tietoja ei-toivotun pääsyn. Se sitoo tiedot ja tiedot yhtenä kokonaisuutena rajoittamalla pääsyn muihin komponentteihin.