* olioiden etsiminen
* CRC- kortit
* kuka huolehtii harrastuksista?
Korttien takapuolelle voidaan kirjoittaa luokan yksityiset tiedot, eli ne tiedot joita joudutaan käyttämään jotta luokka voi hoitaa sovitun vastuunsa.
CRC-kortteja on sitten tarkoitus tutkia työryhmän jäsenten kesken antamalla kortti aina yhdelle ryhmän jäsenelle joka näin voi tarkistaa saako hän ko. luokasta tarvitsemansa tiedot (kääntämättä korttia). Jollei saa, luokkia on vielä helppo muuttaa kun ohjelmaa ei ole kirjoitettu.
Luokan
nimi: cJasen
|
Avustajat:
|
Vastuualueet: (- ei tiedä kerhosta, eikä käyttöliittymästä) - tietää jäsenen kentät (nimi, hetu, puhnro, jne.) - osaa tarkistaa tietyn kentän oikeellisuuden (syntaksin) - osaa muuttaa |Ankka Aku|..| - merkkijonon jäsenen tiedoiksi - osaa antaa merkkijonona i:n kentän tiedot
- osaa laittaa merkkijonon i:neksi kentäksi
|
- merkkijonot
|
Luokan
nimi: cKerho
|
Avustajat:
|
Vastuualueet: - pitää yllä varsinaista rekisteriä, eli osaa lisätä ja poistaa jäsenen - lukee ja kirjoittaa kerhon tiedostoon - osaa etsiä ja lajitella
|
- cJasen
|
Luokan
nimi: cNaytto
|
Avustajat:
|
Vastuualueet: - hoitaa kaiken näyttöön tulevan tekstin - hoitaa kaiken tiedon pyytämisen käyttäjältä (- ei tiedä kerhon eikä jäsenen yksityiskohtia)
|
- cJasen
- cKerho
|
Näyttö voi esimerkiksi aina kysyä jäseneltä montako kenttää tällä on. Samoin näyttö voi pyytää jäsentä antamaan 1. kentän (nimi) merkkijonona, 2. kentän merkkijonona jne. Näin voidaan tulostaa jäsenen tiedot näyttöön tietämättä tarkkaan mitä kenttiä jäsenessä on.
Entä tietojen lukeminen? Näyttö voi myös kysyä jäseneltä sen tekstin, joka täytyy käyttäjälle kirjoittaa, kun pyydetään käyttäjää antamaan 3. kentän tiedot ("Katuosoite"). Tämän jälkeen näyttö voi tulostaa tämän tekstin näyttöön ja jäädä odottamaan käyttäjältä merkkijonoa. Kun käyttäjä antaa merkkijonon, pyydetään jäsentä muuttamaan annettu merkkijono 3:nen kentän tiedoiksi.
Aikanaan saattaa tulla vastaan tilanne, jossa on edullista jakaa näyttöluokka useampaan alaluokkaan, eli esim. yleinen näyttö (cNaytto), kerhon näyttö (cKerhon_naytto) ja jäsenen näyttö (cJasenen_naytto).
Lisäksi yksittäisten kenttien käsittelyä voi auttaa kenttä-luokan käyttö. Peruskenttäluokasta voidaan periä erikoistuneita kenttäluokkia. Tiedon säilyttämisen apuna kerholuokalla voi olla tietorakenne-luokka. Etsiminen voidaan ehkä jättää etsimis- ja selailu -luokan tehtäväksi. Alkuun päästään kuitenkin suunnitelman mukaisella kolmella luokalla.
Jos valinta tehdään valitun tiedostomuodon mukaan, niin mahdollisuuksia on:
Jos mahdollisimman paljon vastuuta harrastusten ylläpidosta annetaan Kerholle, huomataan että toistetaan samat ominaisuudet, joita kirjoitettiin jo jäsenistöä varten. Tämän vuoksi Kerhon roolia kannattaakin hieman selventää siten, että tietorakenteiden ylläpitoa varten tehdään omat luokat ja Kerho komentaa näitä luokkia.
Luokan
nimi: cKerho
|
Avustajat:
|
Vastuualueet: - huolehtii cJasenet ja cHarrastukset - luokkien välisestä yhteistyöstä ja välittää näitä tietoja pyydettäessä - lukee ja kirjoittaa kerhon tiedostoon pyytämällä apua avustajiltaan
|
- cJasenet
- cHarrastukset
|
Luokan
nimi: cJasenet
|
Avustajat:
|
Vastuualueet: - pitää yllä varsinaista jäsenrekisteriä, eli osaa lisätä ja poistaa jäsenen - lukee ja kirjoittaa jäsenistön tiedostoon - osaa etsiä ja lajitella
|
- cJasen
|
Luokan
nimi: cHarrastukset
|
Avustajat:
|
Vastuualueet: - pitää yllä varsinaista harrasterekisteriä, eli osaa lisätä ja poistaa harrastuksen - lukee ja kirjoittaa harrastukset tiedostoon - osaa etsiä ja lajitella
|
- cHarrastus
|
Näin päästään siihen tilanteeseen, jossa myös rinnakkaisten rakenteiden lisääminen Harrastuksille vaatii vain hyvin vähän uutta ohjelmointia.
Huomattakoon, että sekä cJasenet että cHarrastukset ovat pelkkiä abstrakteja tietorakenneluokkia, niiden sisäinen talletustapa voi olla mikä vaan (taulukko, lista, puu) ulkoisen rajapinnan ollessa silti edellisen suunnitelman kaltainen.