– Kapselointi
– Abstraktio
– Perinnöllisyys
– Polymorfismi
Kapselointi
Kapseloinnilla tarkoitetaan datan ja metodien niputtamista yhteen yksikköön. Tämä mahdollistaa funktioiden uudelleenkäytettävyyden varmemmin. Katso esimerkiksi yllä olevaa koodia. Ominaisuudet näkyvät vain luokan soveltamisalalle ja funktiot phoneColor, phoneWeight, phoneBrand, näkyvät sille, joka kutsuu funktiota.
Abstraction
Abstractionin avulla voimme luoda mallin jostain monimutkaisemmasta. Ajattele esimerkiksi puhelintasi, kun menet Instagramiin ja tykkäät tai kommentoit kuvaa. Taustalla tapahtuu paljon monimutkaisuutta ja logiikkaa, johon et ole perehtynyt. Toinen esimerkki olisi kahvinkeitin. Sanotaan, että käytät kahvinkeitintä kahvin keittämiseen. Koneen sisällä tapahtuu paljon asioita, joista et ehkä tiedä. Sinä käyttäjänä et luultavasti välitä siitä, mitä koneessa tapahtuu. Haluat vain kahvia. Pohjimmiltaan se piilottaa tarpeettomat tiedot/detaljit ja antaa meille vain sen, mitä tarvitsemme.
Perimä
Perimä viittaa siihen, miten luokat voivat periä metodeja tai ominaisuuksia toisilta luokilta hierarkkisessa rakenteessa. OOP:ssa on jotain, jota kutsutaan parent class
ja sub class
tai child class
. sub class
tai child class
inherits
peritään vanhemmalta luokalta. Toinen tapa, jolla voimme kuvata tätä, on sanoa, että aliluokka extends
on parent
luokka.
Polymorfismi
Polymorfismi tarkoittaa monia muotoja. Ohjelmoinnissa sillä tarkoitetaan erityisesti sitä, miten alaluokat perivät kaikki ominaisuudet emoluokalta, mutta niillä voi olla myös omia erityisominaisuuksia. Ajatellaan esimerkiksi opettajaa ja oppilaita luokkahuoneen sisällä. Heillä on monia yhteisiä ominaisuuksia, kuten nimi, ikä ja niin edelleen. Oppilailla voi kuitenkin olla omia ominaisuuksia, joita opettajalla ei ole, kuten luokka-aste.
Johtopäätös
Yhteenvetona voidaan todeta, että OOP on olioiden ympärille keskittyvä ohjelmointiparadigma. OOP ei ole spesifinen JavaScriptille, mutta tämä on esimerkki sen suunnittelusta JavaScriptissä. Paras analogia tai tapa ajatella OOP:tä on, että se on pohjimmiltaan suunnitelma objektien luomista varten. Se voi auttaa tekemään koodistamme DRY:tä (Don’t Repeat Yourself) koodin uudelleenkäytettävyyden avulla. Älä huoli, jos et ymmärtänyt tätä käsitettä ensimmäisellä kerralla. Minä en ainakaan ymmärtänyt. Julkaisin alla olevan linkin, josta saat lisätietoa.