Object vai procedural tyylil?

Olen useamman vuoden ajan harjoitellut omaksi ilokseni php:tä ja se sujuukin varsin mallikkaasti nyt, mutta usein olen huomannut, että lisä kirjastot ja muutenkin käytetään object tapaa kun ohjelmoidaan, joten mitä etuja siitä saa perinteideen verrattuna?

Näyttää ainaskin vaikeemmalta tulkita kuin perinteinen tapa, mutta kai sitäkin oppii tulkitsemaan jos viitsisi opiskella, mutta kannattaako.
3201
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

Ilmeisesti liian vaikea kysymys tänne, vai mistä kiikastaa ettei kukaan vastaa?

Äänestä

Tää voi olla hiukan sekava selitys sellaselle, joka ei tunne oliohjelmointia.. Äkkiseltään voi tuntua, että monen asan voi tehdä myös proceduraalisella tyylillä, ja se onkin totta. Mutta olioiden käyttäminen yleensä helpottaa ohjelmoijan elämää kummasti, helpottaa ylläpitoa jne.

Luokilla ja miistä luoduilla olioilla yleensä kuvataan jotain hmm oliota, jota halutaan käyttää monessa paikassa ohjelmakoodissa, esim User voi olla yksi eimerkki.

Oliohjelmoinnista on aivan sama hyöty PHP:ssä kuin perinteisissäkin ohjelmointikielissä. Eli etuina on mm. :

- Ohjelmakoodin uudelleen käytettävyys on aivan eriluokkaa olioita käytettäessä kuin ohjelmoitaessa proceduraalisella tyylillä. Tottakai sä voit kitjottaa funktion ja uudelleen käyttää sitä, mutta luokkia ja niistä luotuja olioita käytettäess uudelleen käytettävyys paranee huomattavasti.

- Luokista voidaan ns periyttää uusia luokkia. Eli suomeksi sanottuna se tarkottaa tätä. Voit haluta että sulla on esim luokka User, ja luokka Admin, jolla on kaikki samat ominaisuudet kuin Userila ja lisäksi joitakin ominaisuuksia jotka on vain luokalla Admin. Tuon voi toteuttaa näppärästi niin, että luot yleiskäyttösen luokan user, josta sitten peiytät luoka Admin. Tuolloin sun tarvitsee toteuttaa User:n ja Adminin yhteiset ominaisuyudet vain kerran.

- Ohjelmakoodi selkiytyy huomattavasti olioita käytettäessä. Proceduraalisella tyylillä isosta ohjelmasta tulee helposti sekava ja vaikeasti ylläpidettävä. Olio-ohjelmointia käytettäessä ohjelma jakautuu helpommin hallittaviin palikoihin. Olioita käytävissä ohjelmissa on myös yleensä helpompi korvata jokin palika toisella ilman että muuhun ohjelmaan tarvitsee tehdä muutoksia. Yksi suuri etu on myös mahdollisten virheiden paikallistamisen helpottuminen.

- Luokkia ja olioita käytettäessä voidaan piilottaa muulta ohjelmalta ohjelmapalikan sisäinen toteutus. Yleensä ohjelmamokkulaa käyttävän sovelluksen ei tarvitse tietää miten se mokkula on toteutettu, riittää että ohjelma tietää rajapinnan millä sitä käytetään. Jokaisella oliolla voi olla ominaisuuksia (atribuutteja), jotka vastaa muuttujia proceduraalisessa ohjelmoinnissa. Lisäksi oliolla on yleensä joukko toimintoja (metodeita), jotka vastaa funktioita proceduraalisessa ohjelmoinnissa. Atribuuttien ja metodien käsitely voidaan myös rajata siten että olion ulkopuolelta niihin käsiksi pääseminen voi olla rajotttua. Esim jokin metodi voi olla käytettävissä vain luokasta perityille ns aliluokille ja muille estetty.

Äänestä

Kommentoi aloitusta


1234567 kirjoitti:

Olen useamman vuoden ajan harjoitellut omaksi ilokseni php:tä ja se sujuukin varsin mallikkaasti nyt, mutta usein olen huomannut, että lisä kirjastot ja muutenkin käytetään object tapaa kun ohjelmoidaan, joten mitä etuja siitä saa perinteideen verrattuna?

Näyttää ainaskin vaikeemmalta tulkita kuin perinteinen tapa, mutta kai sitäkin oppii tulkitsemaan jos viitsisi opiskella, mutta kannattaako.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu