You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sovellus kääntyy ja käynnistyy. Sillä pystyy arpomaan aiheita, sekä lisätä uusia aiheita. Eli toimii hienosti kuten pitikin.
Yksi testi kuitenkin failaa: testGetAllGroups
Esimerkkiaihetiedoston merkistön koodaus on UTF8. Java ilmeisesti olettaa eri koodauksen oletuksena eri järjestelmillä. Linuxillä oletetaan usein UTF8, ja Windowsilla jokin Windowsin koodauksisa (esim. CP1252). Tämän takia jotku merkit eivät näytä käyttöliittymässä samalta kun esimerkkitiedostossa, kun avaan sovelluksen Windowsissa. Tämän voisi ehkä korjata määrittelemällä koodaus kun tiedosto luetaan (lukea bytet, ja luoda uusi String UTF8 koodauksella) ja kirjoitetaan.
Kun se käyttöliittymästä tallentuu, tiedostoon tulee eri koodauksella olevaa tavaraa sekaisin
SubjectIO:
Readerilla on tukea AutoCloseable rajapinnalle, eli sen luonti voi tehdä try lohkon parametrinä, ja täten sitä ei tarvitse (muistaa) sulkea manuaalisesti.
Luokkalla on kova riippuvaisuus luokasta File. Tosin sillä ylläpidetään myös sovelluslogiikan tietolistat. Mielestäni luokalla on siis kaksi vastuuta:
Lukea tiedostosta tavaraa joka muutetaan siihen muotoon mikä sovellus voi käyttää
Ylläpitää sovelluslogiikan tiedot
Nämä voisi eriyttää kahteen eri luokaan. Tiedostonluku-luokka voisi esimerkiksi olla riippuvainen tietojen-ylläpitoluokasta, minne se lisää tavaraa jonkinlaisella julkisella addSubject metodilla.
Yllämainittu näkyy myös symptomina rivillä 39-41, missä on sovelluslogiikkaa tiedostonlukumetodissa
MainGUI:
Metodi randomSubjectButtonActionPerformed kutsuu hieman erikoisesti ensin SubjectIOn getSubjects metodia, ja sitten saman luokan getRandomSubject metodia. Voisiko getRandomSubject metodi lukea tiedot suoraan omasta luokasta, jos sille ei anneta parametriä?
Toisaalta getRandomSubject voisi ehkä olla omassa luokassaan, niin sen vastuu eriytetään vastuusta ylläpitää Subject listat.
Metodissa jButton1ActionPerformed ensin kirjoitetaan lisätty aihe tiedostoon, ja sitten luetaan sama tiedosto uudestaan. Ehkä tässä voisi vaan tehdä niin, että lisätään aihe muistissa olevaan listaan, ja sitten muistissa oleva lista kirjoitetaan tiedostoon? Säästyisi yksi tiedostonlukuoperaatio.
The text was updated successfully, but these errors were encountered:
Ladattu 18.6.2017 kl 19.10
Yleistä:
SubjectIO:
Lukea tiedostosta tavaraa joka muutetaan siihen muotoon mikä sovellus voi käyttää
Ylläpitää sovelluslogiikan tiedot
Nämä voisi eriyttää kahteen eri luokaan. Tiedostonluku-luokka voisi esimerkiksi olla riippuvainen tietojen-ylläpitoluokasta, minne se lisää tavaraa jonkinlaisella julkisella addSubject metodilla.
MainGUI:
The text was updated successfully, but these errors were encountered: