MVVM - Avantages

Le modèle MVVM est finalement la structure moderne du modèle MVC, de sorte que l'objectif principal est toujours le même pour fournir une séparation claire entre la logique de domaine et la couche de présentation. Voici quelques-uns des avantages et des inconvénients du modèle MVVM.

Le principal avantage est de permettre une véritable séparation entre la vue et le modèle au-delà de la séparation et de l'efficacité que vous en tirez. Ce que cela signifie en termes réels, c'est que lorsque votre modèle doit changer, il peut être changé facilement sans que la vue ait besoin de le faire et vice-versa.

Il y a trois éléments clés importants qui découlent de l'application de MVVM qui sont les suivants.

Maintenabilité

  • Une séparation nette des différents types de code devrait faciliter l'accès à une ou plusieurs de ces parties plus granulaires et ciblées et apporter des modifications sans souci.

  • Cela signifie que vous pouvez rester agile et passer rapidement à de nouvelles versions.

Testabilité

  • Avec MVVM, chaque morceau de code est plus granulaire et s'il est implémenté correctement, vos dépendances externes et internes sont dans des morceaux de code séparés des parties avec la logique de base que vous souhaitez tester.

  • Cela rend beaucoup plus facile d'écrire des tests unitaires par rapport à une logique de base.

  • Assurez-vous qu'il fonctionne correctement lors de l'écriture et continue de fonctionner même lorsque les choses changent lors de la maintenance.

Extensibilité

  • Il chevauche parfois la maintenabilité, en raison des limites de séparation propres et des morceaux de code plus granulaires.

  • Vous avez de meilleures chances de rendre l'une de ces pièces plus réutilisable.

  • Il a également la capacité de remplacer ou d'ajouter de nouveaux morceaux de code qui font des choses similaires aux bons endroits de l'architecture.

L'objectif évident du modèle MVVM est l'abstraction de la vue, ce qui réduit la quantité de logique métier dans le code-behind. Cependant, voici quelques autres avantages solides -

  • Le ViewModel est plus facile à tester unitaire que le code derrière ou le code événementiel.
  • Vous pouvez le tester sans automatisation ni interaction maladroites de l'interface utilisateur.
  • La couche de présentation et la logique sont faiblement couplées.

Désavantages

  • Certaines personnes pensent que pour les interfaces utilisateur simples, MVVM peut être excessif.
  • De même, dans les cas plus importants, il peut être difficile de concevoir le ViewModel.
  • Le débogage serait un peu difficile lorsque nous avons des liaisons de données complexes.