-
STUDENTE: GEGA Martin
-
DOCENTE: BELLETTINI Carlo, MONGA Mattia
Il progetto deve tener conto dei seguenti requisiti:
-
Le viste ci permettono di leggere e di impostare la temperatura usando diverse scale (unità di misura). Sono richieste 2 viste: (1) un TextField in gradi Celsius, (2) un TextField in gradi Fahrenheit.
-
Una componente aderente alla interfaccia
Model
si occupa di mantenere il dato temperatura tramite undouble
che rappresenta la misura in gradi Celsius. È unica e comune a tutte le viste. IlModel
a fronte di un cambiamento della temperatura, deve occuparsi di notificare tutti iPresenter
a lui registrati. Internamente mantiene le temperature secondo la scala Celsius. IlModel
deve essere capace di gestire sia una comunicazione con approccio pull che push. -
Una componente aderente alla interfaccia
Presenter
sta nel mezzo traView
eModel
ed interpreta l’input dell’utente (l’inserimento di un valore nelTextField
). Un'istanza diPresenter
(una per ogni vista) a fronte dell'interazione dell'utente deve aggiornare ilModel
con la nuova temperatura appena immessa. Inoltre deve essere in grado di osservare un cambiamento di temperatura nel termostato in modo da aggiornare valore mostrato all'utente dalla vista a lui collegata. -
Per quanto riguarda i
Presenter
: l'approccio usato nel diagramma di sequenza prevede una classe unica (TemperaturePresenter
). Le due strategieCelsiusScale
eFahrenheitScale
possono essere realizzate usando il patternSingleton
.
Sono già fornite come codice:
- le interfacce
Model
,Presenter
,View
,Observable
eObserver
. - la classe
MyTextView
(completa). - la classe
Main
parzialmente da completare. - le classi di test per
TemperatureModel
(nel source settest
) e per il sistema una volta completato (nel source setintegrationTest
).