Lo schema che descrivi è quello che conosco come MVP, Model View Presenter . Questa è un'alternativa all'MVC in quanto il Presenter contiene la logica per l'aggiornamento del codice UI senza la Vista che richiede i dati dal Modello.
Il modello MVC tradizionale consente effettivamente alla vista di conoscere il modello.
Quando preferire uno rispetto all'altro? I puristi sosterranno che MVP è una separazione molto più pulita di interfaccia e responsabilità. L'argomento dice che è molto più semplice sfocare la linea tra l'interrogazione del Modello per tutti i dati necessari e l'essere pigro e l'esecuzione di operazioni complesse o addirittura aziendali nella Vista. Davvero molto brutto.
Ho parlato come programmatore pragmatico, una volta ho creato un'applicazione Actionscript in cui la vista comunicava indirettamente con il modello tramite events
. C'era una certa classe di ViewEvent o ModelEvent che solo la vista poteva ricevere o emettere. Questo mi ha permesso di ottenere aggiornamenti dal modello senza un riferimento esplicito.