Explorer les modèles de conception MVC, MVP et MVVM

L'interface utilisateur contient souvent beaucoup de code encombré, principalement en raison de la logique complexe qu'elle doit gérer. Les modèles de présentation sont conçus principalement avec un seul objectif à l'esprit, réduire le code complexe dans la couche de présentation et rendre le code de l'interface utilisateur propre et gérable. Dans cet article, je présenterai une discussion sur les modèles de conception MVC, MVP et MVVM et soulignerai quand l'un devrait être la conception de choix par rapport à l'autre.

Modèle Vue Contrôleur

L'infrastructure Model View Controller (communément appelée MVC) vous aide à créer des applications plus faciles à tester et à gérer. Il comprend trois éléments majeurs, à savoir:

  1. Modèle - c'est la couche qui représente les données de l'application
  2. Vue - cela représente la présentation ou la couche d'interface utilisateur
  3. Contrôleur - cette couche contient généralement la logique métier de votre application

L'objectif principal du modèle de conception MVC est la séparation des préoccupations pour faciliter la testabilité. Le modèle de conception Model View Controller vous permet d'isoler les problèmes et facilite le test et la maintenance du code de votre application. Dans une conception MVC typique, la demande arrive d'abord au contrôleur qui lie le modèle à la vue correspondante. Dans le modèle de conception MVC, la vue et le contrôleur utilisent la conception de la stratégie et la vue et le modèle sont synchronisés à l'aide de la conception de l'observateur. Par conséquent, nous pouvons dire que MVC est un modèle composé. Le contrôleur et la vue sont faiblement couplés et un contrôleur peut être utilisé par plusieurs vues. La vue souscrit aux modifications du modèle.

Présentateur de vue de modèle

Le modèle de conception MVP (Model View Presenter) comprend également trois composants: le modèle, la vue et le présentateur. Dans le modèle de conception MVP, le contrôleur (dans MVC) est remplacé par le présentateur. Contrairement au modèle de conception MVC, le présentateur fait référence à la vue grâce à laquelle la simulation de la vue est plus facile et les tests unitaires des applications qui exploitent le modèle de conception MVP par rapport au modèle de conception MVC sont beaucoup plus faciles. Dans le modèle de conception MVP, le présentateur manipule le modèle et met également à jour la vue. Il existe deux variantes de cette conception. Ceux-ci incluent les suivants.

  1. Vue passive - dans cette stratégie, la vue n'est pas consciente du modèle et le présentateur met à jour la vue pour refléter les changements dans le modèle.
  2. Contrôleur superviseur - dans cette stratégie, la vue interagit directement avec le modèle pour lier les données aux contrôles de données sans l'intervention du présentateur. Le présentateur est responsable de la mise à jour du modèle. Il ne manipule la vue que si nécessaire - si vous avez besoin d'une logique d'interface utilisateur complexe à exécuter.

Alors que ces deux variantes favorisent la testabilité de la logique de présentation, la variante de vue passive est préférée à l'autre variante (contrôleur de supervision) en ce qui concerne la testabilité, principalement parce que vous avez toute la logique mise à jour de la vue à l'intérieur du présentateur.

Le modèle de conception MVP est préféré à MVC lorsque votre application doit prendre en charge plusieurs technologies d'interface utilisateur. Il est également préférable si vous avez une interface utilisateur complexe avec beaucoup d'interaction utilisateur. Si vous souhaitez avoir un test unitaire automatisé sur l'interface utilisateur de votre application, le modèle de conception MVP est bien adapté et préféré à la conception MVC traditionnelle.

Modèle - Vue - ViewModel (MVVM)

Le modèle - Vue - ViewModel (MVVM) est une variante du modèle de conception de modèle de présentation de Martin Fowler. Le MVVM est un raffinement de la conception MVC populaire et le ViewModel dans MVVM est utilisé pour faciliter la séparation des présentations. Dans MVVM, la logique est stockée dans le présentateur et la vue est complètement isolée du modèle. Alors que le présentateur n'est pas conscient de la vue, la vue est consciente du présentateur - le présentateur dans MVVM est utilisé pour représenter une vue abstraite de l'interface utilisateur. Une vue passive implique que la vue n'a aucune connaissance du modèle. Dans le modèle de conception MVVM, la vue est active et contient des informations sur les comportements, les événements et les liaisons de données. Notez que la vue dans MVVM n'est pas responsable de la gestion des informations d'état - la vue est plutôt synchronisée avec le modèle de vue.Le modèle de vue dans MVVM est responsable de la séparation des présentations et expose des méthodes et des commandes pour gérer l'état d'une vue et manipuler le modèle.

Comment la vue et le modèle de vue dans MVVM communiquent-ils? Eh bien, la vue et le modèle de vue dans MVVM communiquent à l'aide de méthodes, de propriétés et d'événements. La liaison de données bidirectionnelle ou la liaison de données bidirectionnelle entre la vue et le modèle de vue garantit que les modèles et les propriétés du modèle de vue sont synchronisés avec la vue. Le modèle de conception MVVM est bien adapté aux applications qui nécessitent la prise en charge de la liaison de données bidirectionnelle.