Model-View-ViewModel, ou MVVM, est un modèle de conception de logiciel destiné à séparer les commandes de l'interface utilisateur et la logique du programme dans Windows et les logiciels de présentation graphique Web. Aussi connu sous le nom de model-view-binder, il permet de diviser les programmes en modules pour le développement et la réutilisation du code d'une manière plus rapide et plus simple.
Dérivé du modèle Model View Controller, MVVM aide à résoudre divers problèmes de développement pour faciliter le test, l'affinage, la maintenance et l'évolution d'une application. Les concepteurs d'interface utilisateur trouvent le modèle plus facile à collaborer lors du développement des parties d'une application.
Le modèle MVVM
Le modèle MVVM comprend trois composants: le modèle, la vue et le modèle de vue.
Modèle
Le modèle contient les données d'application qui sont généralement des structures ou des classes simples. Il peut être considéré comme une représentation du modèle de domaine de l'application, contenant un modèle de données avec une validation et une logique métier. Des exemples d'objets de modèle sont les POCO (Plain Old CLR Objects), les objets de transfert de données (DTO) et les objets entité et proxy générés.
Consulter
La vue définit la disposition, la structure et l'apparence de ce que les utilisateurs voient à l'écran. C'est la seule chose que les utilisateurs finaux connaissent et avec laquelle ils interagissent. Dans MVVM, la vue est active, ce qui signifie qu'elle n'est pas complètement manipulée par un présentateur / contrôleur. Il comporte des événements, des comportements et des liaisons de données qui nécessitent la connaissance du modèle sous-jacent et du modèle de vue.
Voir le modèle
Le modèle de vue est situé entre le modèle et les couches de vue, qui contiennent les commandes d'interaction avec la vue. Il introduit la séparation de présentation ou l'idée de séparer les nuances de la vue du modèle. Le modèle de vue expose des commandes et des méthodes et des points pour conserver l'état de la vue, déclencher des événements dans la vue et manipuler le modèle.
Avantages de MVVM
Les concepteurs de logiciels préfèrent MVVM en raison de ses avantages:
Extensibilité
MVVM permet aux concepteurs d'ajouter ou de remplacer facilement de nouveaux morceaux de code. Ils peuvent redéfinir l'interface utilisateur de l'application sans toucher au code tant que le code est entièrement en XAML.
Testabilité
Il est plus facile pour les concepteurs d'écrire des tests unitaires par rapport à la logique de base avec MVVM. Les tests unitaires du modèle de vue exercent la même fonctionnalité que celle utilisée par la vue.
Transparence dans la communication
Le modèle de vue donne au contrôleur de vue une interface transparente pour peupler la couche de vue et interagir avec la couche de modèle. Cela se traduit par une communication transparente entre les couches d'une application.