Увод у апстрактне часове у ЈаваСцрипт-у

ЈаваСцрипт је објектно оријентисан језик јер већина елемената у Јавасцрипт-у представљају објекте који очекују примитивне типове података.

У објектно-оријентисаном програмирању (ООП) концепт апстракције је сакрити детаље имплементације и приказати битне карактеристике објекта његовим корисницима. Ова функција апстракције ООП-а повећава разумљивост и одрживост кода који пишемо и смањује дуплирање кода. Пошто се апстракција већину времена користи у програмским језицима као што је Јава, ту ћемо функцију применити у ЈаваСцрипту.

У апстрактним класама у посту на блогу ЈаваСцрипт разговараћемо о апстрактним класама у ЈаваСцрипт-у. Пре него што уђемо у имплементацију апстрактне класе у ЈаваСцрипт-у, разјаснимо шта су апстрактне класе.

Шта су апстрактни часови?

  • Апстрактне класе могу се дефинисати као класе које се не могу инстанцирати, тј. Чија се референца објекта не може креирати и садржи у себи једну или више апстрактних метода.
  • Апстрактна метода је метода која се може само декларирати, али на њу нема примјене. Апстрактне класе морају бити наслијеђене и захтијевају поткласе да би се осигурале имплементације за методу декларирану у апстрактној класи.
  • Као и у Јави, и ми имамо апстрактну кључну реч да би класа постала апстрактна класа, у ЈаваСцрипт-у не постоје такве резервне кључне речи које би класу прогласиле апстрактном класом.
  • У следећем примеру ћемо кодирати неколико редака у ЈаваСцрипт-у да бисмо проверили да ли можемо да створимо апстрактну класу и видимо да ли можемо да удовољимо њеним својствима или не.

Примери апстрактне класе у ЈаваСцрипт-у

Погледајмо неке од примера уз помоћ програмског кода

Пример # 1: Израда апстрактних класа

Шифра:



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

Излаз -

Објашњење горњег кода

У горњем кодном сценарију, створили смо једну конструкцијску функцију Емплоиее која дјелује као апстрактна класа. Такође смо креирали функцију приказа да бисмо проверили име запосленог. У последњем ретку ЈаваСцрипта креирамо референцу објекта или инстанцу (запосленог) запосленика апстрактне класе да проверимо да ли се објект креира или се погрешка приказује кроз функцију приказа.

Сада, проширујући горњи пример даље, створићемо још једну функцију која проширује својства и методе нашег запосленог апстрактног разреда. Што се тиче Јаве, створићемо поткласу, а наш запослени ће бити суперкласа.

Пример # 2: Проширење апстрактне класе

Шифра:



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

Излаз

Објашњење горњег кода

У горе наведеном примеру кода, апстракцију смо постигли креирањем менаџера функција / класе који проширује нашу апстрактну класу Емплоиее кроз прототип ланца (важан концепт у ЈаваСцрипт-у, кроз који се постиже наследство). Детаљи о имплементацији које смо сакрили од корисника и приступају само функцијама које удовољавају његовим захтевима.

У горњим примерима 1 и 2 успели смо да постигнемо апстракцију, мада заиста нисмо задовољили сва својства апстрактне класе. Према дефиницији апстрактних класа, њен објект се не може креирати и треба имати једну или више апстрактних метода.

Изласком ЕС6, ЈаваСцрипт је постао пуно једноставнији и у њега су уведене нове функције класе као у Јави и њене додатне функције. Погледајмо доњи пример где имплементирамо класу у ЈаваСцрипт заједно са својствима апстракције.

Пример # 3: Сажетак класе - Комплетан код

Шифра:



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 - Исправан излаз

Излаз 2 - Коментирајте супер.дисплаи ()

Излаз 3 - Коментирајте вар емп = нев Емплоиее ()

Објашњење горњег кода

Горњи исјечак кода готово личи на јава код са дефинисаним класама, конструкторима, методама и објектима, ово је магија ослобађања ЕС6. Враћајући се на код, можемо видети да је класа Емплоиее апстрактна класа и приказује грешку када се створи његов објект (излаз 3) и садржи апстрактни приказ () чија је имплементација дефинисана у методи приказа () менаџера класе која проширује својства и методе класе Емплоиее.

Закључак

Морамо имати на уму док се бавимо апстракцијом да не може да се створи примера апстрактне класе. Закључно, научили смо како се апстракција ООП концепта може имплементирати у ЈаваСцрипт и моћи имплементирати апстрактну класу са задовољством свих њених својстава.

Препоручени чланци

Ово је водич за Апстрактне часове у ЈаваСцрипт-у. Овде смо расправљали о уводу у Абстрактне часове у ЈаваСцрипт-у, шта су сажети часови заједно са одговарајућим примерима. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -

  1. Шта је ново у Јави 8?
  2. Превладавање у ООП-има
  3. Питхон Алтернативе
  4. Врсте УМЛ дијаграма
  5. ПХП Кључне речи
  6. Врсте података ПЛ / СКЛ
  7. Тхров вс Тхров | Топ 5 разлика које би требало да знате
  8. Различитих 36 кључних речи у СКЛ-у са примерима
  9. Водич за различите Ц # типове података
  10. Различите врсте СКЛ података са примерима

Категорија: