Sto sviluppando un'applicazione in cui:
-
I modelli mantengono i dati come una matrice multidimensionale, che viene salvata così com'è in un database MongoDB. Il modello viene utilizzato per fornire metodi per manipolare i dati e, al di fuori di tali metodi, le proprietà dei dati sono di sola lettura.
-
Il factory di modello crea istantaneamente ogni oggetto in un modo standardizzato e consente alle "query" di eseguire una ricerca rapida in una voce del database e creare istantaneamente un oggetto con esso contemporaneamente.
-
La "vista" è Javascript, e tutto ciò che richiede al controllore per certe cose, e il controller risponde su HTTP con JSON.
-
Il controllore usa la factory del modello per creare un'istanza degli oggetti del modello e fare qualsiasi cosa la richiesta richieda, se possibile. Restituisce sempre JSON.
Generando che JSON è attualmente in una classe "helper", che sto cercando di eliminare. La serializzazione dei dati MongoDB implica la conversione di MongoDate, MongoID e altri oggetti Mongo in stringhe. È necessario che nel controller vengano trasmessi al browser come stringhe: per la maggior parte, il controller sa come inviare i dati alla vista. Ma in alcuni casi, è necessario nel modello tabulare dati di array multidimensionali in un elenco prima che il controllore lo dia al browser. Il controller non sa abbastanza sul modello per fare quella tabulazione.
Qui una classe di aiuto è inevitabile? O dovrebbe avvenire il 100% della serializzazione all'interno del modello? Devo lasciare la funzione di serializzazione nel modello astratto e usarla dal controller con una chiamata statica?