Saturday 9 July 2011

Pröngin oliomallintelu

Nyt kun tietokanta on olemassa, lienee sopivaa alkaa miettiä millä abstrakteilla olioilla Pröngin sisäistä toimintaa voisi kuvata. Lisäksi muutakin arkkitehtuuria voisi kuvata, eikä vain tehdä luetteloa tarvittavista luokista.

Ainoa järkevä perusdesign nykyisen (jossa on piilotettu lähinnä Pröngin kahdelle palstalle kirjoittelu luokan sisään) jälkeen, on .NET/Swingimäinen ratkaisu, jossa kaikki pelottava käyttöliittymäkoodi on abstraktoitu piiloon. Eli suomeksi sanoen, pahaa ja ilkeää HTMLää ei tarvitse nähdä, ellei välttämättä halua. Tämä halu kuitenkin luo tarpeen preHTML- ja postHTML-kentille, jotka olisi tarkoitus tulostaa selaimelle ennen ja jälkeen käyttöliittymäelementin tulostuksen.

Eli, tarvitsemme yhteisen, abstraktin Kontrolliluokan, jossa määritellään protected-määreenä varsinaisen kontrollin koodi, ja jossa on juuri nuo pre- ja postkentät (ja näiden getterit ja setterit). Tästä sitten voidaan periyttää ihmeellisempiäkin kontrolleja :P

Kun otin nuo työpöytä-UIkirjastot esiin, voisin toteuttaa myös jonkinlaisen paneelicontainerin. En kuitenkaan kirjoita mitään javamaista layoutmoottoria siitä syystä, että CSS on paljon kivempi ja ajoittain jopa voimakkaampi layoutin luoja.

Mutta, koska Pröng ei ole pelkkä webbiulkoasukirjasto, pitänee datan liikkeitäkin mallinnella. Ensi-alkuun tarvitsemme jonkun staattisen- tai singletonluokan tietokantayhteydelle. Tähän pitäisi riittää joku kevyt PDO-wräpperi yleisimmille operaatioille (getLuonnos(), getLuonnosAttribuutit(), getUser() mm.), ja hienostuneemmat luokkafactoryt (Käyttäjät, Luonnokset) käyttävät tätä wräpperiä (tai sitten suoraan PDO:ta, en tiedä onko tarpeellista laittaa PDO-kerroksen ja muun softan väliin omaa kerrosta, joka vain kutsuu PDOta tekemättä mitään omaa).

Tässä oli kai tärkeimmät osa-alueet :P Lisää keksin viimeistään lopullista luokkakaaviota tehdessäni.

No comments:

Post a Comment