Sissejuhatus JavaScripti abstraktsete klassidesse

JavaScript on objektorienteeritud keel, kuna enamik javascripti elemente on objektid, mis eeldavad primaarseid andmetüüpe.

Objektorienteeritud programmeerimises (OOP) on abstraktsiooni mõte varjata rakenduse üksikasju ja tutvustada kasutajale objekti olulisi tunnuseid. See OOP abstraktsiooniomadus suurendab meie kirjutatava koodi arusaadavust ja hooldatavust ning vähendab koodi dubleerimist. Kuna abstraktsiooni kasutatakse enamasti programmeerimiskeeltes, näiteks Java, rakendame seda funktsiooni JavaScriptis.

JavaScripti ajaveebi abstraktsete klasside teemal arutame JavaScripti abstraktsete klasside teemal. Enne kui me mõtleme abstraktse klassi kasutuselevõtmisele JavaScriptis, saame aru, mis on abstraktsed klassid.

Mis on abstraktsed klassid?

  • Abstraktseid klasse võib määratleda klassidena, mida ei saa realiseerida, st mille objekti viidet ei saa luua ja mis sisaldab endas ühte või mitut abstraktset meetodit.
  • Abstraktne meetod on meetod, mida saab ainult kuulutada, kuid millel puudub selle rakendamine. Abstraktsed klassid tuleb pärida ja abstraktses klassis deklareeritud meetodi rakendamiseks on vaja alamklasse.
  • Nagu Java-s, on meil klassist abstraktseks klassiks muutmiseks abstraktne märksõna, JavaScriptis pole selliseid abisõnu, mis kuulutaks klassi abstraktseks klassiks.
  • Allpool toodud näites kodeerime JavaScripti paar rida, et kontrollida, kas saame luua abstraktse klassi ja kas saame selle omadusi rahuldada või mitte.

Abstraktklassi näited JavaScriptis

Vaatame mõnda näidet programmi koodi abil

Näide nr 1: Klassi abstraktne loomine

Kood:



//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äljund -

Eespool toodud koodi selgitus

Ülaltoodud koodistsenaariumi korral oleme loonud ühe konstruktorifunktsiooni Töötaja, mis toimib abstraktse klassina. Oleme töötaja nime kontrollimiseks loonud ka kuvafunktsiooni. JavaScripti viimasele reale loome objekti viite või meie abstraktse klassi töötaja eksemplari (töötaja), et kontrollida, kas objekti luuakse või kuvatakse kuvafunktsiooni kaudu viga.

Ülaltoodud näite laiendamisel loome veel ühe funktsiooni, mis laiendab meie abstraktse klassi töötaja omadusi ja meetodeid. Java osas loome alamklassi ja superklassiks on meie töötaja.

Näide 2: abstraktse klassi laiendamine

Kood:



//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äljund

Eespool toodud koodi selgitus

Ülaltoodud koodinäites saavutasime abstraktsiooni, luues funktsiooni / klassijuhi, mis laiendab meie abstraktset klassi Töötajat prototüübi ahela kaudu (JavaScriptis on oluline kontseptsioon, mille kaudu pärimine saavutatakse). Rakendus kirjeldab meie eest kasutaja eest varjatud andmeid ja pääseb juurde ainult nende nõuetele vastavatele funktsioonidele.

Ülaltoodud näidetes 1 ja 2 oleme suutnud saavutada abstraktsiooni, ehkki me pole tegelikult abstraktse klassi kõiki omadusi rahuldanud. Abstraktsete klasside määratluse kohaselt ei saa selle objekti luua ja sellel peaks olema üks või mitu abstraktset meetodit.

ES6 väljalaskega muutus JavaScripti palju lihtsamaks ja tutvustas klassides nagu Java ja selle lisafunktsioone uusi funktsioone. Vaatame allpool näidet, kus rakendame JavaScripti klassi koos abstraktsiooni omadustega.

Näide 3: abstraktne klass - täielik kood

Kood:



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();

1. väljund - õige väljund

2. väljund - kommenteerige super.display ()

3. väljund - kommenteerige välja emp emp = uus töötaja ()

Eespool toodud koodi selgitus

Ülaltoodud koodilõik näeb peaaegu välja nagu java kood, mille klassid, konstruktorid, meetodid ja objektid on määratletud, see on ES6 vabastamise võlu. Tulles tagasi koodi juurde, näeme, et töötajate klass on abstraktne klass ja selle objekti loomisel kuvatakse tõrge (väljund 3) ning see sisaldab abstraktse meetodi kuva (), mille rakendamine on määratletud halduri display () meetodis klass, mis laiendab töötaja klassi omadusi ja meetodeid.

Järeldus

Me peame abstraktsiooni käsitlemisel meeles pidama, et abstraktse klassi näidet ei saa luua. Kokkuvõtteks saime teada, kuidas OOP kontseptsiooni saab JavaScriptis rakendada ja kuidas abstraktset klassi rakendada kõigi omadustega.

Soovitatavad artiklid

See on juhend JavaScripti abstraktsete klasside kohta. Siin käsitleme JavaScripti abstraktsete klasside sissejuhatust, mis on abstraktsed klassid koos sobivate näidetega. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Mida uut on Java 8-s?
  2. OOPides ülimuslik
  3. Pythoni alternatiivid
  4. UML-diagrammide tüübid
  5. PHP märksõnad
  6. PL / SQL andmetüübid
  7. Viska vs viskab | 5 parimat erinevust, mida peaksite teadma
  8. Erinevad SQL-i 36 parimat märksõna koos näidetega
  9. Erinevate C # andmetüüpide juhend
  10. Erinevat tüüpi SQL-i andmed koos näidetega

Kategooria: