Keď jete burrito, každý z vašich chuťových receptorov spieva od radosti. Každé sústo prináša kombináciu rôznych typov chutí, ako je slaná, sladká, korenistá a umami. Každé sústo potom chutí trochu inak, pretože nová kolekcia ingrediencií spája ich chute.

Možno ste si prečítali ingrediencie z jedálneho lístka, no neviete presne, ako sa salsa vyrába. Korenie, ktoré používajú na svojej zelenine, môže byť tajnou zmesou. Nemusíte však poznať každú presnú ingredienciu. Stačí vedieť, že je to chutné.

Ingrediencie, ktoré poznáte, ako obyčajná biela ryža, sú konkrétne. Ostatné prvky sú abstraktné. Viete, že je to salsa, ale aká? Alebo, ak vám niekto len tak z ničoho nič podá burrito, potom je celé burrito abstraktné.

Abstrakcia v abstrakte

Spolu s dedičstvom, abstrakcia je dôležitý pojem v objektovo orientovanom programovaní. Teória hovorí, že každý objekt by mal priniesť jednoduché a predvídateľné výsledky. Objekty by tiež mali zdieľať len to, čo je potrebné zdieľať.

Burrito si môžete predstaviť ako predmet. Vo vnútri burrita máte niekoľko ďalších predmetov, ako sú fazuľa, ryža, syr a horúca omáčka. Fazuľa mohla byť okorenená. Syr môže byť zmesou. A horúca omáčka môže byť kombináciou papriky zrejúcej v octe.

instagram viewer

Nemusíte vedieť, ako boli všetky ingrediencie v burrito vyrobené. A v prípade párkov v rožku to asi nechcete vedieť. Dôležité je len to, aby sa vám pri konzumácii nerozpadla a bola super chutná.

Abstrakcia je úzko spätá so zapuzdrením

Je to to isté s programovacími objektmi. Keď vytvoríte inštanciu objektu (vytvoríte ho z triedy), je to ako objednať si burrito z pultu food trucku. Máte prístup k niektorým údajom, ale nie ku všetkým. Nepotrebujete vedieť, ako objekt funguje, pokiaľ funkcie vracajú správne údaje. Tu je burrito v JavaScripte/Typescripte:

Zadaný jazyk: tsx neexistuje“
Generovanie kódu zlyhalo!!
'

Môžeš hrajte sa s týmto kódom na pieskovisku TypeScript.

Vo vyššie uvedenom príklade sú zložky salsy a syra abstrahované. Najprv sú zapuzdrené, aby skryli špeciálne prísady. Potom sa pridajú getre, aby sa dostali k zložkám. Ale ingrediencie vracajú iba abstraktnú reprezentáciu toho, čím skutočne sú.

Abstrakcia v betóne

Abstrakcia je však viac ako len koncept. Triedy môžu byť aj abstraktné. To znamená, že môžu definovať ďalšie triedy. Ale nedajú sa vytvoriť sami.

Prečo by hodiny mali byť niekedy abstraktné

Predstavte si, že idete do reštaurácie a sadnete si. Čašník vám podá jedálny lístok. Otvoríte ho a zistíte, že je tam len jeden predmet: jedlo.

To je dosť abstraktné. Objednali by ste si to? Zjedli by ste to? Pravdepodobne nie. Povedať niečo ako jedlo nestačí. Treba to rozložiť na niečo konkrétnejšie.

A čo cestoviny? No, to je špecifickejší druh jedla. A vieme, že má pravdepodobne rezance a omáčku. Ale existuje veľa rôznych druhov cestovín, takže je to stále abstraktné.

Čo je abstraktné a čo konkrétne?

Fettuccine Alfredo je konkrétnym príkladom jedla aj cestovín. To isté platí pre triedy. Nie každá trieda by mala byť inštancia. Niektoré triedy by mali definovať iba štruktúru iných tried.

Tu je príklad s abstraktom Jedlo trieda a dieťa Makadamiové orechy trieda:

Zadaný jazyk: tsx neexistuje“
Generovanie kódu zlyhalo!!
'

Tu je kód.

Abstraktné triedy hovoria ostatným triedam, ako sa majú správať. Vo vyššie uvedenom príklade, ak sa chystáte byť triedou jedla, musíte mať funkcie, ktoré umožňujú prístup k vášmu menu, chuti, popisu a kalóriám.

Všimnite si, že Makadamiové orechy trieda predlžujeJedlo. To znamená Makadamiové orechy súhlasí s dodržiavaním pravidiel Jedlo. Všimnite si tiež, že volá konštruktor Super. Tento príkaz vytvorí inštanciu rodičovskej triedy predtým, ako konštruktor vytvorí inštanciu Makadamiové orechy.

Ak sa učíte programovať, môžete užite si viac zábavy s týmito programovacími hrami.

Abstrakcia prax

  • Navštívte vyššie uvedený odkaz a použite karanténu na vytvorenie abstraktnej triedy s názvom polievka.
  • Vytvorte konkrétne dieťa z polievka triedy, tzv Cereálne.
  • Použite konzola.log na otestovanie kódu. Čo sa stane, ak váš Cereálne triede chýba jedna z funkcií definovaných v polievka?

Aký je však zmysel triedy, ktorú nemôžete vytvoriť?

Na prvý pohľad sa môžu abstraktné triedy zdať zbytočné. Koniec koncov, v skutočnosti ich nemôžete použiť na výrobu predmetu. A nie je to tak, že by odovzdávali svoje funkcie. Funkcie musia byť prepísané v každej triede detí.

Existujú dva hlavné dôvody, prečo potrebujete abstraktné triedy. Udržujú váš kód konzistentný a zaisťujú, že aj iní vývojári píšu konzistentný kód. Nebudete vždy pracovať sami. Celý tím musí dodržiavať rovnaké pravidlá. Viac sa môžete dozvedieť od dokumentáciu TypeScript o abstraktných triedach.

Ako zorganizovať svoj objektovo orientovaný kód pomocou dedenia

Prečítajte si ďalej

zdieľamTweetujtezdieľamEmail

Súvisiace témy

  • Programovanie
  • Programovanie
  • Objektovo orientované programovanie

O autorovi

Lee Nathan (19 publikovaných článkov)

Lee je nomád na plný úväzok a polyhistor s mnohými vášňami a záujmami. Niektoré z týchto vášní sa točia okolo produktivity, osobného rozvoja a písania.

Viac od Lee Nathana

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!

Ak sa chcete prihlásiť na odber, kliknite sem