La mia applicazione al momento è piuttosto caotica e sto cercando di districare tutto. La mia idea attuale è che dovrei avere 3 livelli separati:
- livello dati che sa come conservare elementi nel database (e gestire le modifiche allo schema dati, quindi non è così banale)
- domain layer (è quel nome corretto?) che fa tutto il magico cambiando gli oggetti ed elaborando gli eventi innescati dalle richieste degli utenti
- livello di presentazione che sa come mostrare all'utente solo ciò che l'utente è autorizzato a conoscere (alcuni dati sono nascosti all'utente solo perché)
La mia idea iniziale era che avendo un oggetto dati posso creare da esso un oggetto dominio, quindi creare un oggetto vista da quello e poi servirlo all'utente. Comunque ora sto pensando di costruire l'oggetto vista direttamente dall'oggetto dati.
- Se l'utente interroga solo alcune informazioni, recupero i dati dal database, ottengo una bella presentazione e li servo all'utente. Non toccare affatto il livello del dominio.
- Se l'utente esegue un'azione, recupero i dati, ne compro i modelli, eseguo l'interazione con l'oggetto magico, li salvi tutti nel livello dati, quindi li avvolgo in presentazione e li servo.
Quanto pessima è una tale progettazione?
Purtroppo non sono esperto di terminologia di architettura / design del software, quindi potrei non riuscire a trovare la risposta solo perché non so come denominare le cose.
Modifica: non intendo scartare completamente la parte del modello. Voglio solo dire che avrò il Modello seduto su Dati e Vista seduto su Dati.