Tutti i modelli di vista dovrebbero essere accessibili tramite il modello di visualizzazione principale in MVVM?

5

Attualmente sto lavorando a un'applicazione WP8. Il mio attuale design prevede che ogni vista si leghi direttamente con uno specifico modello di vista.

Guardando attraverso gli esempi, tuttavia, sembra che un altro modo sia di accedere a tutti i modelli di visualizzazione attraverso il modello di visualizzazione principale e quindi di avere tutte le viste ai loro modelli di visualizzazione tramite MVM.

È questo il modo corretto di farlo (in modo da non causare flessibilità e altri problemi in futuro)?

    
posta chustar 25.11.2012 - 22:40
fonte

1 risposta

3

Generalmente, sì, MVVM porta a un bind di 1: 1 tra Views e ViewModels. Non è un requisito, ma sembra essere un effetto collaterale di come molte persone scrivono applicazioni strutturate MVVM.

È possibile avere una o più viste che puntano allo stesso ViewModel. La VM deve semplicemente fornire le proprietà che la specifica Vista richiede per la VM essere utile.

Vorrei evitare un pattern hub-spoke usando una VM "principale" che fornisce l'accesso alle altre VM. Sembra più sovraccarico del necessario senza aggiungere molti vantaggi.

C'è un modello alternativo chiamato MVPVM che è una lettura piuttosto utile anche se stai andando attenersi al modello MVVM. MVPVM separa la logica di business dalla VM e la colloca all'interno di Presenter.

Ciò che mi è piaciuto di questo articolo è la progressione di MVC - > MVP nei giorni smalltalk, quindi spiega come MVP è rimasto rilevante per molte UI di oggi e la naturale evoluzione in MVVM di MVP. L'autore fornisce un avvertimento sul non discutere di applicazioni web, solo applicazioni desktop, ma ritengo che l'articolo sia abbastanza ampio da poter raccogliere i dettagli rilevanti indipendentemente dall'applicazione di destinazione.

    
risposta data 28.11.2012 - 20:53
fonte

Leggi altre domande sui tag