Johdatus JavaScriptin abstraktiluokkiin

JavaScript on oliokeskeinen kieli, koska suurin osa javascriptin elementeistä on esineitä, jotka odottavat primitiivisiä tietotyyppejä.

Objektiorientoituneessa ohjelmoinnissa (OOP) abstraktion tarkoituksena on piilottaa toteutustiedot ja esitellä objektion tärkeitä ominaisuuksia sen käyttäjille. Tämä OOP: n abstraktiominaisuus parantaa kirjoittamasi koodin ymmärrettävyyttä ja ylläpidettävyyttä ja vähentää koodin päällekkäisyyttä. Koska abstraktio käytetään suurimmaksi osaksi ohjelmointikielissä, kuten Java, käytämme tätä ominaisuutta JavaScriptillä.

Abstraktien luokkien JavaScript-blogin postissa keskustelemme abstraktien luokkien JavaScriptistä. Ennen kuin sukellamme abstraktin luokan toteuttamiseen JavaScriptillä, ymmärrämme mitä abstraktit luokat ovat.

Mitä abstraktit luokat ovat?

  • Abstraktit luokat voidaan määritellä luokiksi, joita ei voida toteuttaa, ts. Joiden kohdeviittausta ei voida luoda ja jotka sisältävät siinä yhden tai useamman abstraktin menetelmän.
  • Abstrakti menetelmä on menetelmä, joka voidaan vain julistaa, mutta jolla ei ole siihen toteutusta. Abstraktit luokat on perittävä ja vaadittava alaluokkia abstraktissa luokassa ilmoitetun menetelmän toteuttamiseksi.
  • Kuten Java-ohjelmassa, meillä on abstrakti avainsana luokasta abstraktiksi luokkaksi, JavaScriptillä ei ole sellaisia ​​vara-avainsanoja, jotka julistaisivat luokan abstraktiksi luokkaksi.
  • Alla olevassa esimerkissä koodataan muutama rivi JavaScriptillä varmistaaksemme, voimmeko luoda abstraktin luokan ja voimmeko tyydyttää sen ominaisuudet vai ei.

Esimerkkejä JavaScriptin abstraktista luokasta

Katsotaanpa joitain esimerkkejä ohjelmakoodin avulla

Esimerkki 1: Abstraktin luokan luominen

Koodi:



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

Tulos -

Edellä olevan koodin selitys

Yllä olevassa koodiskenaariossa olemme luoneet yhden konstruktoritoiminnon Työntekijä, joka toimii abstraktina luokana. Olemme myös luoneet näyttötoiminnon työntekijän nimen tarkistamiseksi. JavaScriptin viimeiselle riville luomme abstraktin luokan Työntekijä kohdeobjektin tai ilmentymän (työntekijän) tarkistaaksemme, luodaanko objektia vai näytetäänkö virhe näyttötoiminnon kautta.

Nyt laajentamalla yllä olevaa esimerkkiä luomme toisen funktion, joka laajentaa abstraktin luokan työntekijän ominaisuuksia ja menetelmiä. Java-suhteen luomme alaluokan ja työntekijämme on yliluokka.

Esimerkki 2: Tiivistelmäluokan laajentaminen

Koodi:



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

ulostulo

Edellä olevan koodin selitys

Yllä olevassa koodiesimerkissä saavutimme abstraktion luomalla toiminto- / luokan johtajan, joka laajentaa abstraktia luokka Työntekijäämme prototyyppiketjun läpi (tärkeä käsite JavaScriptissä, jonka kautta periminen saavutetaan). Toteutusohjelma yksityiskohdat piiloutuvat käyttäjältämme ja käyttävät vain ominaisuuksia, jotka täyttävät hänen vaatimukset.

Edellä olevissa esimerkeissä 1 ja 2 olemme onnistuneet saavuttamaan abstraktion, vaikka emme todellakaan ole tyydyttäneet kaikkia abstraktin luokan ominaisuuksia. Abstraktien luokkien määritelmän mukaan sen objektia ei voida luoda ja sillä tulisi olla yksi tai useampi abstrakti menetelmä.

ES6: n julkaisemisen myötä JavaScript tuli paljon yksinkertaisemmaksi ja toi siihen uusia ominaisuuksia, kuten Java ja sen lisäominaisuudet. Katsotaan alla esimerkki, jossa toteutamme luokan JavaScriptiin yhdessä abstraktiominaisuuksien kanssa.

Esimerkki 3: Tiivistelmäluokka - täydellinen koodi

Koodi:



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

Tulos 1 - oikea lähtö

Tulos 2 - kommentoi super.display ()

Tulos 3 - kommentoi var emp = uusi työntekijä ()

Edellä olevan koodin selitys

Yllä oleva koodinpätkä näyttää melkein Java-koodilta, jonka luokit, rakentajat, menetelmät ja objektit määritetään, tämä on ES6: n julkaisun taikuutta. Palattuamme takaisin koodiin, voimme nähdä, että Työntekijäluokka on abstrakti luokka ja näyttää virhettä, kun sen objekti luodaan (Output 3) ja sisältää abstraktin menetelmänäytön (), jonka toteutus on määritelty Manager (display) -menetelmässä luokka, joka laajentaa työntekijäluokan ominaisuuksia ja menetelmiä.

johtopäätös

Meidän on pidettävä mielessä, kun käsittelemme abstraktiota, että abstraktin luokan esimerkkiä ei voida luoda. Lopuksi opimme kuinka abstraktio OOP-konsepti voidaan toteuttaa JavaScript ja pystyy toteuttamaan abstraktin luokan kaikki ominaisuudet ovat tyytyväisiä.

Suositellut artikkelit

Tämä on opas tiivistelmäluokkiin JavaScriptillä. Tässä keskustellaan JavaScriptin abstraktien luokkien johdannosta, mitä ovat abstraktit luokat, sekä sopivia esimerkkejä. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. Mitä uutta Java 8: ssa?
  2. Ohittaminen OOP: issa
  3. Python-vaihtoehdot
  4. UML-kaavioiden tyypit
  5. PHP-avainsanat
  6. PL / SQL-tietotyypit
  7. Heitä vs heittää | 5 suosituinta eroa, jotka sinun pitäisi tietää
  8. Eri 36 SQL: n 36 parasta avainsanaa ja esimerkkejä
  9. Opas erilaisiin C # -tyyppisiin tietoihin
  10. Erityyppiset SQL-tiedot esimerkkeinä