Amikor megeszel egy burritót, minden ízérzékelőd örömében énekel. Minden falat különböző íztípusok kombinációját hozza magával, mint például a sós, édes, fűszeres és umami. Ezután minden falat kissé más ízű, mivel az összetevők új gyűjteménye egyesíti az ízeket.
Lehet, hogy elolvastad a hozzávalókat az étlapról, de nem tudod pontosan, hogyan készül a salsa. A zöldségeikhez használt fűszerezés titkos keverék lehet. Nem kell azonban minden pontos összetevőt tudnod. Elég azt tudni, hogy finom.
Az Ön által ismert összetevők, mint például a sima fehér rizs, konkrétak. A többi elem absztrakt. Tudod, hogy salsa, de milyen? Vagy ha valaki csak a semmiből ad át neked egy burritót, akkor az egész burritó elvont.
Absztrakció az absztraktban
Az örökléssel együtt, az absztrakció fontos fogalom az objektumorientált programozásban. Az elmélet szerint minden objektumnak egyszerű és kiszámítható eredményt kell adnia. Az objektumok is csak azt osszák meg, amit meg kell osztani.
A burritót tárgynak tekintheti. A burritóban számos egyéb tárgy található, például bab, rizs, sajt és csípős szósz. Lehet, hogy a bab fűszerezett. A sajt lehet keverék is. A csípős szósz pedig ecetben érlelt paprika kombinációja lehet.
Nem kell tudnia, hogyan készült a burrito összes összetevője. A virsli esetében pedig valószínűleg nem akarod tudni. Csak az számít, hogy fogyasztáskor ne essen szét, és szuper finom legyen.
Az absztrakció szorosan kapcsolódik a kapszulázáshoz
Ugyanez a helyzet a programozási objektumokkal. Amikor egy objektumot példányosítasz (egy osztályból hozod létre), az olyan, mintha egy burritót rendelnél az élelmiszerautó pultjáról. Hozzáférhet bizonyos adatokhoz, de nem az összeshez. Nem kell tudnia, hogyan működik az objektum, mindaddig, amíg a függvények a megfelelő adatokat adják vissza. Íme egy burrito JavaScript/Typescript nyelven:
A megadott nyelv: tsx nem létezik'A kódgenerálás nem sikerült!!
'
tudsz játszani ezzel a kóddal a TypeScript sandboxban.
A fenti példában a salsa és a sajt összetevői absztrahálva vannak. Először is kapszulázva vannak, hogy elrejtse a különleges összetevőket. Ezután gettereket adnak hozzá, hogy hozzáférjenek az összetevőkhöz. De az összetevők csak egy elvont ábrázolást adnak annak, ami valójában.
Absztrakció a betonban
Az absztrakció azonban több, mint fogalom. Az osztályok lehetnek absztraktok is. Ez azt jelenti, hogy más osztályokat is meghatározhatnak. De önmagukat nem lehet példányosítani.
Miért kell az osztályoknak néha absztraktnak lenniük?
Képzeld el, hogy bemész egy étterembe és leülsz. A pincér átnyújt egy menüt. Kinyitva azt látja, hogy csak egy elem van: étel.
Ez elég absztrakt. Megrendelnéd? Megennéd? Valószínűleg nem tennéd. Nem elég azt mondani, hogy valami étel. Valami konkrétabbra kell bontani.
Mi a helyzet a tésztával? Nos, ez egy speciálisabb ételfajta. És tudjuk, hogy valószínűleg tészta és szósz van benne. De nagyon sokféle tészta létezik, így ez még mindig elvont.
Mi az absztrakt és mi a konkrét?
A Fettuccine Alfredo konkrét példa az ételekre és a tésztákra egyaránt. Ugyanez vonatkozik az osztályokra is. Nem kell minden osztályt példányosítani. Egyes osztályoknak csak más osztályok szerkezetét kell meghatározniuk.
Íme egy példa absztrakttal Étel osztály, és egy gyerek Makadámdió osztály:
A megadott nyelv: tsx nem létezik'A kódgenerálás nem sikerült!!
'
Itt a kód.
Az absztrakt osztályok elmondják a többi osztálynak, hogyan kell viselkedniük. A fenti példában, ha Ön egy élelmiszerosztály lesz, olyan függvényekkel kell rendelkeznie, amelyek lehetővé teszik a hozzáférést a nevéhez, ízéhez, leírásához és kalóriáihoz.
Vegyük észre, hogy a Makadámdió osztály kiterjedÉtel. Ez azt jelenti, hogy Makadámdió szabályait betartja Étel. Figyeld meg azt is, hogy a konstruktor hív szuper. Ez a parancs példányosítja a szülőosztályt, mielőtt a konstruktor példányosítana Makadámdió.
Ha programozni tanulsz, akkor tudsz érezd jól magad ezekkel a programozós játékokkal.
Absztrakciós gyakorlat
- Látogassa meg a fenti hivatkozást, és használja a homokozót egy absztrakt osztály létrehozásához Leves.
- Hozzon létre egy konkrét gyermeket a Leves osztály, ún Gabona.
- Használat console.log hogy tesztelje a kódját. Mi történik, ha a Gabona osztályból hiányzik az egyik -ban definiált függvény Leves?
De mi értelme van annak az osztálynak, amelyet nem tudsz példányosítani?
Elsőre az absztrakt osztályok szükségtelennek tűnhetnek. Végül is valójában nem használhatod őket tárgy készítésére. És nem mintha átadnák a funkcióikat. A függvényeket minden gyerekosztályban át kell írni.
Két fő oka van annak, hogy szükség van absztrakt osztályokra. Konzisztens kódot tartanak fenn, és gondoskodnak arról, hogy más fejlesztők is konzisztens kódot írjanak. Nem fogsz mindig egyedül dolgozni. Az egész csapatnak ugyanazokat a szabályokat kell követnie. Többet megtudhat az absztrakt osztályokról szóló TypeScript dokumentációt.
Hogyan szervezze meg objektumorientált kódját örökléssel
Olvassa el a következőt
Kapcsolódó témák
- Programozás
- Programozás
- Objektumorientált programozás
A szerzőről

Lee főállású nomád és polihisztor, sok szenvedéllyel és érdeklődéssel. Ezen szenvedélyek egy része a termelékenység, a személyes fejlődés és az írás körül forog.
Iratkozzon fel hírlevelünkre
Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!
Kattintson ide az előfizetéshez