MVC in un'applicazione desktop: la vista può mai contenere un riferimento al modello?

0

(Sto specificando che si tratta di un'applicazione desktop in modo che le persone non si riferiscano specificamente alle implementazioni Web di MVC).

Il titolo dice tutto più o meno.

In una struttura MVC - la Vista mai può contenere un riferimento al Modello? Oppure il Controller deve essere usato come un "intermediario" per la comunicazione tra View e Modello - sempre - e in entrambe le direzioni?

Se la risposta è "no, non può" - perché?

    
posta Aviv Cohn 06.04.2014 - 23:01
fonte

1 risposta

3

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.

    
risposta data 07.04.2014 - 00:13
fonte

Leggi altre domande sui tag