Je vais vous indiquer un site particulièrement utile vidéo par Jason Dolinger.
Venant d'un monde WinForms, la mise en œuvre de tout modèle de style MVX me semblait plus compliquée qu'elle n'en valait la peine, mais après avoir travaillé avec WPF pendant quelques années maintenant, je peux dire honnêtement que je n'envisagerais rien de moins. L'ensemble du paradigme est pris en charge dès la sortie de la boîte.
Tout d'abord, l'avantage clé est de permettre une véritable séparation entre le view
et model
. Concrètement, cela signifie que si votre modèle doit être modifié, il peut l'être sans que la vue ne doive l'être et vice-versa.
Deuxièmement, alors que votre model
peut contenir toutes les données dont vous pourriez avoir besoin dans votre view
vous voudrez peut-être abstraire ces données de manière à ce que votre model
n'est pas prise en charge. Par exemple, disons que votre modèle contient une propriété de date. Dans le modèle, elle peut exister uniquement en tant que DateTime
mais votre vue peut vouloir le présenter d'une manière complètement différente. Sans le viewmodel
vous devrez soit dupliquer la propriété dans le fichier model
pour soutenir la vue ou modifier la propriété, ce qui pourrait sérieusement obscurcir le "modèle".
Vous pouvez également utiliser un viewmodel
pour regrouper les parties de votre modèle qui existent dans des classes/bibliothèques distinctes afin de faciliter une interface plus fluide pour le view
à gérer. C'est très Il est peu probable que vous souhaitiez travailler avec des données dans votre code de la même manière qu'un utilisateur souhaitera ou voudra que ces données lui soient présentées.
En plus de cela, vous bénéficiez de la prise en charge de la liaison automatique bidirectionnelle des données entre l'interface utilisateur et l'interface utilisateur. view
et viewmodel
.
Il y a vraiment tout un tas de choses supplémentaires dont je pourrais parler, mais Jason dit tout. loin mieux que je ne pourrais le faire, donc mon conseil est de regarder la vidéo. Après quelques jours de travail comme ça, vous vous demanderez comment vous avez pu vous en passer.
Bonne chance.
3 votes
J'ai toujours considéré MVVM comme une variation de MVC.