Lo scenario:
Ho una GUI con campi di testo e pulsanti di opzione dove l'utente inserisce le informazioni per una "Persona"
Ecco le classi del modello e del modello di visualizzazione:
enum Gender
{
case Male, Female
}
class Person
{
var name: String = ""
var surname: String = ""
var id: String = ""
var gender: Gender?
setDataFromViewModel(model: PersonViewModel)
{
// doing stuff
}
}
class PersonViewModel
{
var name: String = ""
var surname: String = ""
var id: String = ""
var gender: Gender?
init(person: Person)
{
// doing stuff with the strings to make them nice
}
}
Se ho già i dati, PersonViewModel lo otterrà dalla Persona e lo consegnerà alla vista.
Se l'utente scrivendo i dati, PersonViewModel lo otterrà per primo e lo passerà al modello Person.
Domande: Se devo verificare l'integrità delle stringhe provenienti dalla vista, dove dovrei farlo? (controllando che la stringa non sia vuota, che l'ID corrisponda a una certa espressione regolare, ecc.)
Questa è un'implementazione ottimale del pattern ora mi manca qualcosa?