Kui lahendada ainult põhiosa, siis peaks QueryAction'ist piisama - kõik info saab sinna kirja panna.
Näide:
ei pea tegema 4 päringut. Antud ülesande puhul, kui ta isegi teeb, siis väga hullu midagi pole. Sõltuvalt sellest, kas interaktiivne osa on lahendatud või mitte, võib lahendus olla järgmine:
1)
Koos interaktiivse osaga:
Kuna käske saab eraldi ette anda ("query", "setcount", "sort", "search"), siis tulebki igat käsku eraldi täita. count ja query käivad läbi ühe actioni (eriti, kui need ühe käsuna ja/või käsurealt ette antakse). Kui käsud on eraldi "query" ja "setcount", siis "setcount" muudab näiteks mälus olevat count muutujat. Kui järgmine korda "query" käima pannakse, siis kasutatakse seda infot mälust. Ehk siis "setcount" ei peaks eraldi päringut tegema. "query" teeb päringu ja salvestab säutsud TwitterApplicationi külge (setTweets()). "sort" võtab saadud säutsud (getTweets()) ja rakendab sortimist nende peal. Mõistlik on tulemus salvestada uuesti (setTweets()). "search" käsk teeb jah uue päringu nende parameetritega, millega viimane päring koostati. "print" käsk lihtsalt prindib getTweets() tulemused välja. Täpsemalt on käsud ja nende kirjelduse siin:
https://courses.cs.ttu.ee/pages/ITI0011:S%C3%A4uts#Lisaosa:_interaktiivne_juhtimine_.281-2p.292)
Ilma interaktiivse osata:
Kui interaktiivne osa pole realiseeritud, siis saab käske ette anda käsurealt (ehk siis see näide, mis küsimuses oli). Siin on loogika sama, "sort" kindlasti ei peaks uut päringut tegema, kuna seda peab rakendama selle osa peale, mis on juba päritud. Asukoht ja säutsude kogus läheb ühte actionisse. "search" võiks mitte teha uue päringu. Sul on võimalus action listi läbivaatamisel uurida, mis seal sees on ning meelde jätta, kas otsing on või mitte. Kui otsing on seal olemas, siis ei hakka "query" actioni puhul üldse päringut tegema. Päring tehakse sellisel juhul "search" actioni juures (või vastupidi, kuidas tundub mugavam). See, kuidas seda olukorda lahendada, on tudengi otsustada. Lahendusi on mitmeid. Kui interaktiivne osa pole lahendatud, siis eraldi actionite listi etteandmist ei testita, pigem ikka käsurea argumentidena. Võimalik on teha ka üks action, mis implementeerib kõiki etteantud action interface'e. Sellisel juhul saab executeAction'is kontrollida: if (action instanceof QueryAction && action instanceof SearchAction) {.
Ma plaanin sellel nädalal rääkida praktikumides HW2 ülesande lahendamisest. Peamiselt küll sellest, kuidas põhiosa ära lahendada. Aga kindlasti räägin mõne sõnaga sellest, kuidas kõiki teisi osasid lahendada.
Materjalide kohta info:
https://courses.cs.ttu.ee/pages/ITI0011:git#Kursuse_koodAgo