MVVM è (ancora un'altra) variazione su modelli che separano le preoccupazioni di una presentazione tipica, molto simile a MVC e MVP. Indipendentemente da queste variazioni, le preoccupazioni di base sono la seguente triade:
- il modello (i dati sottostanti e gli oggetti del dominio).
- la vista (ciò che l'utente vede e interagisce con)
- la facciata che si traduce tra il modello e la vista. (il ViewModel in questo caso)
Fare ciò porta a benefici per se stessi che non hanno nulla a che fare con la tecnologia della piattaforma, inclusa l'aumentata testabilità che deriva dall'assunzione di logica che potrebbe essere accorpata nella vista in altro modo.
La particolarità del ViewModel di MVVM è che promuove l'uso del binding dei dati, che è un strong esempio delle tecnologie che tendono ad usarlo (wpf, silverlight).
In teoria, è così! In pratica, ciò implica capacità ed esperienza nel collegamento dei dati. OOP e test - quindi potrebbe esserci una curva di apprendimento. Ci sono anche diversi modi per eseguire il pattern, quindi i primi tentativi potrebbero sembrare un po 'schiaccianti.
Ma avrai la sicurezza dei tuoi test man mano che acquisisci esperienza e rifletti su usi più eleganti. Il test è essenziale per qualsiasi progetto IMO non banale, indipendentemente dalla sua dimensione massima. Ho già detto che MVVM promuove la testabilità?