Kun syöt burriton, jokainen makureseptorisi laulaa ilosta. Jokainen purema tuo yhdistelmän erilaisia ​​makutyyppejä, kuten suolaista, makeaa, mausteista ja umamia. Jokainen suupala sen jälkeen maistuu hieman erilaiselta, kun uusi ainesosien kokoelma yhdistää makunsa.

Olet ehkä lukenut ainekset valikosta, mutta et tiedä tarkalleen kuinka salsa valmistetaan. Mauste, jota he käyttävät vihanneksissaan, voisi olla salainen sekoitus. Sinun ei kuitenkaan tarvitse tietää jokaista tarkkaa ainesosaa. Riittää, kun tietää, että se on herkullista.

Tunnetut ainesosat, kuten tavallinen valkoinen riisi, ovat betonia. Muut elementit ovat abstrakteja. Tiedät, että se on salsaa, mutta millaista? Tai jos joku vain ojentaa sinulle burriton tyhjästä, koko burrito on abstrakti.

Abstraktio abstraktissa muodossa

Yhdessä perinnön kanssa, abstraktio on tärkeä käsite olio-ohjelmoinnissa. Teorian mukaan jokaisen kohteen pitäisi tuottaa yksinkertaisia ​​ja ennustettavia tuloksia. Objektien tulisi myös jakaa vain sitä, mikä on jaettava.

Voit ajatella burritoa esineenä. Burriton sisällä on useita muita esineitä, kuten papuja, riisiä, juustoa ja kuumaa kastiketta. Pavut voivat olla maustettuja. Juusto voi olla sekoitus. Ja kuuma kastike voi olla yhdistelmä etikassa kypsytettyjä paprikoita.

Sinun ei tarvitse tietää, kuinka kaikki burriton ainekset valmistettiin. Ja hot dogien tapauksessa et luultavasti halua tietää. Tärkeää on vain se, että se ei hajoa syödessään ja että se on erittäin maukasta.

Abstraktio on tiiviisti sidoksissa kapselointiin

Se on sama asia ohjelmointiobjektien kanssa. Kun luot objektin (luodat sen luokasta), se on kuin tilaaisit burriton ruoka-auton tiskiltä. Sinulla on pääsy joihinkin tietoihin, mutta et kaikkiin. Sinun ei tarvitse tietää kuinka objekti toimii, kunhan funktiot palauttavat oikeat tiedot. Tässä on burrito JavaScriptissä/Typescriptissä:

Määritetty kieli: tsx ei ole olemassa'
Koodin luominen epäonnistui!!
'

Sinä pystyt pelata tällä koodilla TypeScript-hiekkalaatikossa.

Yllä olevassa esimerkissä salsan ja juuston ainesosat on otettu pois. Ensin ne kapseloidaan erityisten ainesosien piilottamiseksi. Sitten lisätään getterit ainesosien saamiseksi. Mutta ainesosat palauttavat vain abstraktin esityksen siitä, mitä ne todella ovat.

Abstraktio betonissa

Abstraktio on kuitenkin enemmän kuin käsite. Luokat voivat olla myös abstrakteja. Tämä tarkoittaa, että he voivat määritellä muita luokkia. Mutta niitä ei voi ilmentää itsestään.

Miksi luokkien pitäisi joskus olla abstrakteja

Kuvittele, että menet ravintolaan ja istut alas. Tarjoilija ojentaa sinulle menun. Avaat sen ja huomaat, että siellä on vain yksi esine: ruoka.

Se on aika abstraktia. Tilaisitko sen? Söisitkö sen? Et luultavasti tekisi. Ei riitä, että sanotaan, että jokin on ruokaa. Se on jaettava johonkin konkreettisempaan.

Entä pasta? No, se on tarkempi ruokalaji. Ja tiedämme, että siinä on luultavasti nuudeleita ja kastiketta. Mutta siellä on paljon erilaisia ​​pastalajeja, joten se on silti abstraktia.

Mikä on abstrakti ja mikä on konkreettinen?

Fettuccine Alfredo on konkreettinen esimerkki sekä ruoasta että pastasta. Sama pätee luokkiin. Jokaista luokkaa ei pidä instantoida. Joidenkin luokkien tulisi määrittää vain muiden luokkien rakenne.

Tässä on esimerkki abstraktilla Ruokaa luokka ja lapsi Macadamiapähkinät luokka:

Määritetty kieli: tsx ei ole olemassa'
Koodin luominen epäonnistui!!
'

Tässä on koodi.

Abstraktit luokat kertovat muille luokille, kuinka heidän pitäisi käyttäytyä. Yllä olevassa esimerkissä, jos aiot olla ruokaluokka, sinulla on oltava toimintoja, jotka sallivat pääsyn nimesi, makusi, kuvauksesi ja kalorisi.

Huomaa, että Macadamiapähkinät luokkaa ulottuuRuokaa. Se sanoo sen Macadamiapähkinät suostuu noudattamaan sääntöjä Ruokaa. Huomaa myös, että rakentaja kutsuu super. Tämä komento instantoi yläluokan ennen kuin rakentaja instantoi Macadamiapähkinät.

Jos opettelet ohjelmoimaan, voit pidä hauskaa näiden ohjelmointipelien parissa.

Abstraktiokäytäntö

  • Vieraile yllä olevasta linkistä ja luo hiekkalaatikon avulla abstrakti luokka nimeltä Keitto.
  • Luo konkreettinen lapsi Keitto luokka, ns Vilja.
  • Käyttää console.log testataksesi koodiasi. Mitä tapahtuu, jos sinun Vilja luokasta puuttuu yksi kohdassa määritellyistä funktioista Keitto?

Mutta mitä järkeä on luokassa, jota et voi ilmentää?

Aluksi abstraktit luokat saattavat tuntua tarpeettomilta. Loppujen lopuksi et voi käyttää niitä itse asiassa esineen tekemiseen. Eikä se ole niin, että he siirtävät tehtäviään. Funktiot on kirjoitettava uudelleen jokaisessa lapsiluokassa.

On kaksi tärkeintä syytä, miksi tarvitset abstrakteja luokkia. He pitävät koodisi johdonmukaisena ja varmistavat, että myös muut kehittäjät kirjoittavat yhdenmukaista koodia. Et aina työskentele yksin. Koko joukkueen tulee noudattaa samoja sääntöjä. Voit oppia lisää osoitteesta abstraktien luokkien TypeScript-dokumentaatio.

Kuinka järjestää oliopohjainen koodisi perinnön avulla

Lue Seuraava

JaaTweetJaaSähköposti

Liittyvät aiheet

  • Ohjelmointi
  • Ohjelmointi
  • Olio-ohjelmointi

Kirjailijasta

Lee Nathan (19 artikkelia julkaistu)

Lee on kokopäiväinen nomadi ja monimies, jolla on monia intohimoja ja kiinnostuksen kohteita. Jotkut näistä intohimoista pyörivät tuottavuuden, henkilökohtaisen kehityksen ja kirjoittamisen ympärillä.

Lisää Lee Nathanilta

tilaa uutiskirjeemme

Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja eksklusiivisia tarjouksia!

Klikkaa tästä tilataksesi