Objektno orijentisano programiranje u JavaScriptu
Dobrodošli na naše novo blog izdanje posvećeno najboljim praksama objektno orijentisanog programiranja u JavaScriptu. Kroz ovaj blog, provesti ćemo vas kroz ključne koncepte i tehnike OOP-a u JavaScriptu.
Objektno orijentisano programiranje (OOP) je programski stil baziran na klasama i objektima. Ovaj stil grupiše podatke (svojstva) i metode (akcije) unutar entiteta.
OOP je razvijen kako bi kod postao fleksibilniji i lakši za održavanje.
JavaScript je jezik baziran na prototipima, što znači da podržava i funkcionalno i objektno orijentisano programiranje. Upoznajmo sada najbitnije prakse koje nam pomažu pri kodiranju i boljem razumijevanju JavaScripta.
Razumijevanje objekata
Objekti su temeljni gradivni blokovi u JavaScriptu, i koriste se za skladištenje kolekcija parova ključ-vrijednost. Pogledajmo kako kreirati objekat koristeći sintaksu objektnog doslovnog zapisa:
|
const car = { |
Drugi način je koristeći new Object() sintaksu:
|
const car = new Object(); |
Objektima koje smo kreirali možemo pristupiti koristeći dot (tačka) notaciju, a kreira se ovako: objectName.keyname.
Primjer za naš slučaj bi mogao biti:
console.log(car..year) // vraća 2022
Pored samog pristupanja, objekte možemo brisati, dodavati new properties i uređivati stare, na način da im pristupimo koristeći pomenutu notaciju, a zatim dodijelimo novu vrijednost.
Jedan primjer dodavanja new property i brisanja istog, navodimo ispod.
|
car.oilType = “D34”; |
Klase u JavaScriptu
U programiranju, klasa je tip strukture koju definiše programer, a koja se zatim koristi za kreiranje više objekata istog tipa. Kreiranjem jedne klase, možemo dodavati svojstva i metode specifične samo za tako kreiranu klasu. Klase predstavljaju srž objektno orijentisanog programiranja, a u isto vrijeme nam olakšavaju proces kreiranja i razvijanja aplikacija ili projekata.
Sada ćemo primjer koji smo koristili za primjer objekta prevesti u klasu i dodati jednu metodu.
|
class Car { |
Instancu klase Car kreiramo na naredni način:
var car1 = new Car(“Toyota”, “Camry”, 2022, “Silver”);
var car2 = new Car(“Honda”, “Civic”, 2021, “Red”);
Razmotrimo sada četiri osnovna koncepta OOP-a : apstrakcija, enkapsulacija, nasljeđivanje i polimorfizam.
Osnovni koncepti OOP-a:
Apstrakcija
Apstrakcija u OOP-u je proces izlaganja samo neophodnih funkcija korisniku, dok se kompleksna unutrašnja logika skriva kako bi se programi olakšali za korištenje i razumijevanje. Na primjer, kada šaljemo poruku putem svog telefona, sve funkcije i logika koja usmjerava poruku ka drugoj osobi su skrivene jer nam nije potrebno znati ih, niti znati kako funkcionišu. Apstrakcija pomaže smanjenju kompleksnosti, povećava upotrebljivost i čini promjene u aplikaciji manje ometajućim.
Inkapsulacija
Inkapsulacija je proces grupisanja srodnog koda u jednu cjelinu. Inkapsulacija onemogućava drugim dijelovima koda da manipulišu ili mijenjaju način rada grupe aplikacije, osim ako eksplicitno ne pristupimo toj jedinici i ne izmijenimo je. Inkapsulacija nam pomaže da smanjimo složenost i povećamo ponovnu upotrebu koda.
Nasljeđivanje
Nasljeđivanje u OOP-u smanjuje dupliciranje koda, omogućavajući nam da izgradimo dio aplikacije na drugom dijelu tako što naslijedimo svojstva i metode tog dijela aplikacije. Primjer bi bio da klase poput Auto, Motocikl, Bus mogu imati potrebu za istim metodama i svojstvima.
Polimorfizam
U programiranju, polimorfizam je termin koji se koristi za opisivanje koda ili programa koji može obraditi mnoge vrste podataka vraćajući odgovor ili rezultat na osnovu datih podataka. Polimorfizam pomaže da eliminišemo kompleksne i nepotrebne “if” i “switch” naredbe, jer mogu postati dugi pri pisanju složenih programa.
Kao primjer enkapsulacije možemo pogledati način na koji pišemo private properties i metode, gdje na taj način ograničavamo ono što korisnik može da vidi i može da mijenja. Dakle, vidimo da koristimo malo neobičnu sintaksu, sa znakom # ispred property.
|
class Person { |
Zatim imamo primjer nasljeđivanja koji koristi ključnu riječ extends. Ovdje možemo vidjeti i polimorfizam, jer klasa Employee override-a metodu greet() koja je definisana u klasi Person.
|
class Employee extends Person { |
Objektno Orijentisano Programiranje (OOP) predstavlja moćan pristup u razvoju JavaScript aplikacija. Kroz ovaj blog, istražili smo ključne koncepte OOP-a, i uvidjeli kako nam OOP omogućava organizaciju koda u logičke jedinice, olakšava održavanje i proširivanje aplikacija, i omogućava efikasno upravljanje složenim sistemima. Polimorfizam, na primjer, omogućava različitim objektima da se ponašaju na način koji je prirodan za njihov tip, čime se smanjuje potreba za dugim if-else nizovima.
Učenje i primjena OOP-a u JavaScriptu može poboljšati organizaciju vašeg koda, olakšati timsku suradnju i povećati ponovnu upotrebu koda. OOP nije samo programska paradigma, već i alat za rješavanje stvarnih problema na efikasan način.

Odgovori