Úvod do abstraktných tried v JavaScripte

JavaScript je objektovo orientovaný jazyk, pretože väčšina prvkov v javascripte sú objekty, ktoré očakávajú primitívne typy údajov.

V objektovo orientovanom programovaní (OOP) je koncepciou abstrakcie skrytie implementačných detailov a predstavenie základných vlastností objektu jeho používateľom. Táto abstrakčná funkcia OOP zvyšuje zrozumiteľnosť a udržiavateľnosť kódu, ktorý píšeme, a znižuje duplikáciu kódu. Pretože abstrakcia sa väčšinou používa v programovacích jazykoch ako Java, túto funkciu použijeme v JavaScripte.

V blogu Abstraktné triedy v blogu JavaScript budeme diskutovať o abstraktných triedach v JavaScripte. Predtým, ako sa ponoríme do implementácie abstraktnej triedy v JavaScripte, môžeme pochopiť, aké sú abstraktné triedy.

Čo sú to abstraktné triedy?

  • Abstraktné triedy je možné definovať ako triedy, ktoré nemôžu byť konkretizované, tj ktorých odkaz na objekt nemožno vytvoriť a obsahuje v nich jednu alebo viac abstraktných metód.
  • Abstraktná metóda je metóda, ktorú je možné deklarovať, ale nemá implementovanú. Abstraktné triedy musia byť zdedené a vyžadujú podtriedy, aby zabezpečili implementáciu metódy deklarovanej v abstraktnej triede.
  • Podobne ako v jazyku Java máme aj abstraktné kľúčové slovo, aby sa z triedy stala abstraktná trieda, v JavaScripte neexistujú také rezervné kľúčové slová, ktoré by triedu vyhlásili za abstraktnú triedu.
  • V nasledujúcom príklade zakódujeme niekoľko riadkov v JavaScripte, aby sme skontrolovali, či môžeme vytvoriť abstraktnú triedu a či môžeme uspokojiť jej vlastnosti alebo nie.

Príklady abstraktnej triedy v JavaScripte

Pozrime sa na niektoré príklady pomocou programového kódu

Príklad č. 1: Vytvorenie abstraktnej triedy

kód:



//Created an abstract class (constructor function)
function Employee()
(
this.empName= "empName";
if(this.constructor === Employee)(
throw new Error("FYI: Instance of Abstract class cannot be instantiated");
)
) ;
// Method (function) of our abstract class
Employee.prototype.display=function()
( return this.empName; )
var employee = new Employee();

Výkon -

Vysvetlenie vyššie uvedeného kódu

V uvedenom scenári kódu sme vytvorili jednu konštruktorovú funkciu Zamestnanec, ktorá pôsobí ako abstraktná trieda. Vytvorili sme tiež funkciu displeja na kontrolu mena zamestnanca. V poslednom riadku JavaScriptu vytvoríme referenciu na objekt alebo inštanciu (zamestnanca) našej abstraktnej triedy Zamestnanec, aby sme skontrolovali, či sa objekt vytvára alebo či sa prostredníctvom funkcie displeja zobrazuje chyba.

Teraz rozšírením vyššie uvedeného príkladu vytvoríme ďalšiu funkciu, ktorá rozširuje vlastnosti a metódy našej abstraktnej triedy Zamestnanec. Pokiaľ ide o Javu, vytvoríme podtriedu a náš zamestnanec bude nadtriedou.

Príklad č. 2: Rozšírenie abstraktnej triedy

kód:



//Created an abstract class (constructor function)
function Employee()
(
this.empName="empName";
if(this.constructor === Employee)(
throw new Error("You cannot create an instance of Abstract Class");
)
);
// Method (function) of our abstract class
Employee.prototype.display=function()
(
return "Employee name is: "+this.empName;
)
//Created a subclass (constructor function)
function Manager(fullName)
(
this.empName=fullName;
)
//Created an object of subclass (extending abstract class)
Manager.prototype=Object.create(Employee.prototype);
var mang=new Manager("Aniket Davda");
console.log(mang.display());

Výkon

Vysvetlenie vyššie uvedeného kódu

V uvedenom príklade kódu sme dosiahli abstrakciu vytvorením manažéra funkcie / triedy, ktorý rozširuje nášho abstraktného zamestnanca o triedu prototypov (dôležitý koncept v skripte JavaScript, prostredníctvom ktorého sa dosahuje dedičnosť). Implementácia podrobne popisuje naše skryté pred používateľom a pristupuje iba k funkciám, ktoré spĺňajú jeho požiadavky.

Vo vyššie uvedených príkladoch 1 a 2 sa nám podarilo dosiahnuť abstrakciu, hoci sme vlastne nesplnili všetky vlastnosti abstraktnej triedy. Podľa definície abstraktných tried jej objekt nemožno vytvoriť a mal by mať jednu alebo viac abstraktných metód.

S vydaním ES6 sa JavaScript stal omnoho jednoduchším a predstavil do neho nové funkcie tried ako v Java a jej ďalšie funkcie. Pozrime sa na príklad uvedený nižšie, kde implementujeme triedu do JavaScriptu spolu s abstrakčnými vlastnosťami.

Príklad č. 3: Abstraktná trieda - úplný kód

kód:



class Employee
(
constructor() (
if(this.constructor == Employee)(
throw new Error(" Object of Abstract Class cannot be created");
)
)
display()(
throw new Error("Abstract Method has no implementation");
)
)
class Manager extends Employee
(
display()(
//super.display();
console.log("I am a Manager");
)
)
//var emp = new Employee;
var mang=new Manager();
mang.display();

Výstup 1 - správny výstup

Výstup 2 - Komentár mimo super.display ()

Výstup 3 - Komentár var emp = new Employee ()

Vysvetlenie vyššie uvedeného kódu

Vyššie uvedený útržok kódu takmer vyzerá ako java kód s definovanými triedami, konštruktormi, metódami a objektmi, jedná sa o kúzlo vydania ES6. Teraz, keď sa vraciam späť k kódu, vidíme, že trieda Zamestnanec je abstraktná trieda a pri vytvorení objektu (výstup 3) zobrazuje chybu a obsahuje abstraktné zobrazenie metódy (), ktorého implementácia je definovaná v metóde display () manažéra trieda, ktorá rozširuje vlastnosti a metódy triedy Zamestnanec.

záver

Pri riešení abstrakcie musíme mať na pamäti, že človek nemôže vytvoriť inštanciu abstraktnej triedy. Na záver sme sa dozvedeli, ako je možné implementovať abstrakciu konceptu OOP do JavaScriptu a ako implementovať abstraktnú triedu so splnením všetkých jej vlastností.

Odporúčané články

Toto je sprievodca abstraktnými triedami v JavaScripte. Tu diskutujeme úvod do abstraktných tried v JavaScripte, čo sú abstraktné triedy spolu s príslušnými príkladmi. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Čo je nové v Java 8?
  2. Prevažujúci počet OOP
  3. Python Alternatívy
  4. Typy diagramov UML
  5. Kľúčové slová PHP
  6. Údajové typy PL / SQL
  7. Hodiť vs Hodí | Top 5 rozdielov, ktoré by ste mali vedieť
  8. Rôzne top 36 kľúčových slov v SQL s príkladmi
  9. Sprievodca rôznymi typmi údajov C #
  10. Rôzne typy údajov SQL s príkladmi

Kategórie: