Kurssiesittely | Luennot | Harjoitukset |
---|
Katso ohjeet edellisistä harjoituksista.
max 7 pistettä
net.orfjackal.weenyconsole.CommandExecuter
siten, että irrotat sen sisäluokan Possibility
omaksi erilliseksi luokakseen ja siirrät siihen kaikki metodit, jotka ovat siellä parhaiten kotonaan. Eli tee Extract Class -refaktorointi. Tulosta muutamia refaktorointisi välivaiheita ja lopputulos paperille, jotta tehtävää olisi helpompi käsitellä laskuharjoitustilaisuudessa.
1 piste: Kyseinen sisäluokka on erotettu omaksi luokakseen. Kaikki testit menevät läpi.
2 pistettä: Lisäksi sen jäseniksi on siirretty metodit, jotka ovat siellä parhaiten kotonaan. Kaikki testit menevät läpi.
3 pistettä: Lisäksi koodi on refaktoroitu mahdollisimman siistiksi. Kaikki testit menevät läpi.
Vihjeitä: Etenkin mikäli käytettävä GUI-kirjasto (Swing) ei ole entuudestaan tuttu, voi olla helpointa tehdä GUI ensin, minkä jälkeen on helpompi nähdä, että millaiset rajapinnat sen ja kontrollerin välille kannattaa tehdä. Näkymän test double lienee helpointa kirjoittaa käsin, eikä mock object -kirjaston avulla, koska näkymä ja kontrolleri kommunikoivat keskenään hyvin tiiviisti ja mock objectien konfiguroinneista tulisi valtavia. Javassa pystyy tarkkailemaan tekstikentän muutoksia kirjain kerrallaan JTextField.getDocument().addDocumentListener() avulla. Siitä voi olla hyötyä hakukentän toteuttamisessa. Editoitava taulukko, jossa näkyy osoitekirjan henkilöt, on helpointa toteuttaa JTable-komponentilla.
1 piste: Passive View'n kontrolleri on osittain valmis. Kaikki testit menevät läpi.
2 pistettä: Passive View'n kontrolleri on täysin valmis. Kaikki testit menevät läpi.
3 pistettä: Graafinen käyttöliittymä on osittain valmis. Kaikki testit menevät läpi.
4 pistettä: Graafinen käyttöliittymä on täysin valmis. Kaikki testit menevät läpi.
Harjoitustilaisuudessa keskustellaan luokkien refaktoroinnista ja tutustutaan seuraavissa harjoituksissa muutettavaan legacy-koodiin.