Sto lavorando a un'applicazione di visualizzazione e manipolazione di grafici client spessa. Sto provando ad applicare il pattern MVC al nostro componente di visualizzazione 3D.
Ecco cosa ho per il modello, la vista e il controller:
Modello - Il grafico e i suoi metadati. Questo include vertici, bordi e gli attributi di ciascuno. Non contiene informazioni sulla posizione, icone, colori o qualsiasi cosa relativa alla visualizzazione.
Visualizza - Questo sarebbe comunemente chiamato un grafico di scena. Include le informazioni di visualizzazione 3D, le informazioni sulla trama, le informazioni sul colore e qualsiasi altra cosa correlata specificamente alla visualizzazione del modello.
Controller - Il controller prende la vista e la visualizza in una finestra usando OpenGL (ma potrebbe potenzialmente essere un qualsiasi pacchetto di grafica 3D).
L'applicazione ha vari "layout" che cambiano la posizione dei vertici nel display. Ad esempio, un layout può disporre i vertici in un cerchio.
È comune per questi layout accedere e modificare direttamente la vista? Dovrebbero passare attraverso il controller per accedere alla vista? Se passano attraverso il Controller, dovrebbero semplicemente chiedere l'accesso diretto alla View o ogni cambiamento dovrebbe passare attraverso il controller?
Mi rendo conto che questo è un po 'diverso dall'esempio MVC standard in cui esiste un numero finito di Visualizzazioni. In questo caso, la vista può cambiare in un numero infinito di modi. Forse sto distruggendo alcuni principi di base di MVC qui.
Grazie in anticipo!