Ho messo insieme una grande struttura di dati del quiz. È in formato JSON ma immagino possa essere XML ecc. Potrebbe sembrare qualcosa di simile a questo:
{
"quiz":{
"title": "Welcome to Quiz"
"entries": [
{
"question": "programmers.so is awesome?"
"answers": [
{
"answer": "Yes"
},
{
"answer": "Yes!"
}
]
}
]
}
}
Ora ho bisogno di creare un'applicazione che possa consumare questi dati. Inizierò caricandolo e inserendolo in Modelli.
Ma ... I dati qui non rappresentano tutti i dati di cui ho bisogno. Ad esempio, quando selezioni una risposta, desidero tenere traccia di quale risposta è stata selezionata.
Questa informazione non appartiene ai dati.
Voglio basare la struttura del mio modello sulla struttura JSON o la tengo separata?
Has
dei dati
class Model {
protected data: IQuizJSON;
constructor(data: IQuizJSON){
this.data = data;
//use the data to construct unpolluted models
}
}
Is
dei dati
class Model {
title: string;
entries: Entry[];
constructor(data: IQuizJSON){
this.title = data.title;
this.entries = [];
for (var i: number = 0; i < data.entries.length; i++){
this.entries.push(new Entry(data.entries[i]));
}
}
}
class Entry implements IQuizEntry {
question: string;
constructor(data: IQuizEntryJSON){
this.question = new Question(data.question); //etc
}
}
Fino ad ora ho letto come interagiscono i Modelli e le Viste, ma qui i dati e il modello sembrano fondersi e non sono sicuro del modo migliore di procedere?