Sto lavorando a un progetto con MVVM. Alcuni ViewModels hanno più di un repository.
- ViewModels presenta più di un repository non valido?
- Fornisci il motivo per cui è buono / cattivo.
Sto lavorando a un progetto con MVVM. Alcuni ViewModels hanno più di un repository.
Buono
Lo scopo di ViewModel è di astrarre dove sono archiviati i dati, in modo che la Vista possa visualizzare i dati in un modo che abbia senso per l'utente, ma non necessariamente i dati che corrispondono al back-end. Se, ad esempio, alcuni dati provengono da una query in SQL e alcuni provengono da un servizio Web per aumentare tali dati, quindi li spingo alla View utilizzando un singolo ViewModel, quindi dico che stai facendo esattamente quello che è stato progettato per . Stai eliminando la complessità dei dati archiviati in più repository per la vista, in modo tale che qualsiasi vista tu decida di utilizzare, hai un ViewModel facile da usare e conciso.
Esempio:
Ho alcuni dati che devo raccogliere e visualizzare:
Riesco a farlo apparire in un ViewModel:
Voglio mostrare tutte le informazioni su una singola pagina, quindi il singolo approccio ViewModel mi dà un singolo oggetto che posso visualizzare nella mia vista. Se ho più ViewModels per una singola vista, o provo a fare quell'aggregazione e il calcolo nella vista stessa, allora indebolisco i benefici del modello, e potrei anche tornare a ASP.NET/Silverlight/whatever normale. Se il modello cambia, allora posso cambiare il modo in cui i repository arrivano al ViewModel, ma la vista non interessa (né dovrebbe farlo), perché interessa solo a ViewModel, non da dove provengono i dati.