Les applications modernes ont besoin d'une telle variété de fonctionnalités que leur processus de développement a augmenté en taille et en complexité. Pour vous aider, vous pouvez utiliser un modèle de conception architecturale. Ils prennent en charge la création d'applications faciles à tester et à entretenir.
Les trois modèles de conception les plus populaires sont MVC, MVP et MVVM. Le MVC signifie modèle, vue et contrôleur, tandis que MVP signifie modèle, vue et présentateur, et MVVM pour modèle, vue et modèle de vue.
Modèles architecturaux et de conception
Motif architectural
Un modèle architectural clarifie et définit certains composants cruciaux d'une architecture logicielle. Même si un modèle architectural véhicule l'image d'un système, ce n'est pas une architecture. En fait, il s'agit d'une solution générale et réutilisable à un problème courant dans l'architecture logicielle dans un certain contexte.
Design pattern
Un modèle de conception est une meilleure pratique formalisée que vous pouvez utiliser pour résoudre des problèmes courants lors de la conception d'une application ou d'un système.
La différence entre le modèle architectural et le modèle de conception
Commençons par le terme courant: modèle. Dans les logiciels, un modèle est une propriété récurrente qui vous permet de décomposer une structure énorme et complexe en composants plus petits et plus simples. Vous pouvez utiliser ce modèle pour élaborer une solution générale pour une classe de problèmes.
À chaque niveau de développement logiciel, vous utiliserez différents outils. À des niveaux inférieurs, ces outils sont des modèles de conception. Les modèles architecturaux existent à des niveaux plus larges, et paradigmes de programmation au niveau de la mise en œuvre.
Pourquoi avons-nous besoin de modèles de conception architecturale ?
Lors du développement de logiciels, vous pouvez utiliser des modèles de conception architecturale pour résoudre des problèmes courants. Une bonne architecture peut également vous aider à :
- Divisez les tâches complexes en tâches plus simples.
- Réduire les bogues.
- Produire du code testable et maintenable.
Mais sans modèle architectural, vous pouvez avoir des difficultés à maintenir la logique métier de votre application.
Modèle, Vue, ViewModel, Contrôleur et Présentateur
Avant de regarder chaque modèle, voici les termes qui les composent :
- Modèle stocke les données et communique directement avec la base de données. Le modèle est la partie qui représente vos données et la logique d'application. Il définit les règles métier qui gèrent la manipulation, la modification ou le traitement des données.
- Voir affiche les données du modèle et est responsable de la représentation des données dans l'interface utilisateur.
- AfficherModèle est exclusif au modèle MVVM. Il s'agit d'une abstraction de la couche de vue et agit également comme un wrapper pour les données du modèle.
- Manette est le composant qui intègre la vue et le modèle.
- Présentateur est un composant qui n'existe que dans le modèle MVP. Presenter obtient l'entrée du composant de vue et traite les données à l'aide du modèle.
Modèles MVC, MVP et MVVM
Modèle Modèle-Vue-Contrôleur
La Modèle architectural MVC était le premier, et il est populaire aujourd'hui dans le domaine des applications Web. Il a été introduit dans les années 1970. Ce modèle vous permet de créer une application autour de la séparation des préoccupations (SoC). Il facilite l'effort dont vous avez besoin pour tester, maintenir et développer votre application.
Dans le modèle MVC, le modèle n'a aucune compréhension de la vue ou du contrôleur. L'observateur du modèle recevra une alerte chaque fois qu'il y a un changement dans la vue et le contrôleur. Le contrôleur aide le processus de routage à connecter le modèle à la vue pertinente.
Certains des avantages du modèle MVC sont :
- Séparation des préoccupations (plus ciblée).
- Facilite le test et la gestion du code.
- Favorise le découplage des couches de l'application.
- Meilleure organisation et réutilisabilité du code.
Voici comment fonctionne MVC :
Grâce au SoC, MVC peut réduire la taille du code et créer un bon code propre et gérable.
Modèle Modèle-Vue-Présentateur
Le modèle MVP partage deux composants avec MVC: le modèle et la vue. Il remplace le contrôleur par le présentateur. Le présentateur, comme son nom l'indique, est utilisé pour présenter quelque chose. Cela vous permet de vous moquer plus facilement de la vue.
Dans MVP, le présentateur a la fonctionnalité de "l'intermédiaire" car toute la logique de présentation lui est poussée. La vue et le présentateur dans MVP sont également indépendants l'un de l'autre et interagissent via une interface.
Voici une illustration du fonctionnement du modèle MVP :
Le présentateur reçoit une entrée de l'utilisateur via la vue. Il traite ensuite les actions de l'utilisateur à l'aide du modèle, en renvoyant les résultats à la vue. Le présentateur communique avec la vue via des interfaces.
Modèle Modèle-Vue-VueModèle
MVVM est l'évolution moderne de MVC. L'objectif principal de MVVM est de fournir une séparation claire entre la logique de domaine et la couche de présentation. MVVM prend en charge la liaison de données bidirectionnelle entre la vue et le modèle de vue.
Le modèle MVVM vous permet de séparer la vue et le modèle de votre code. Cela signifie que lorsque le modèle change, la vue n'a pas besoin de le faire, et vice-versa. À l'aide d'un modèle de vue, vous pouvez effectuer des tests unitaires et tester votre comportement logique sans impliquer votre vue.
Voici une illustration du fonctionnement de MVVM :
Quand utiliser MVC, MVP et MVVM
Maintenant que vous connaissez chaque modèle, découvrez quand les utiliser.
Quand utiliser MVC
MVC est simplement une implémentation de la séparation des préoccupations. Si votre application doit séparer les données (modèle), le traitement des données (contrôleur) et la présentation des données (vue), MVC fonctionnera bien. MVC sert également bien dans une application où la source de données et/ou la présentation des données peuvent changer à tout moment.
Quand utiliser MVP
Vous pouvez utiliser MVP lorsque votre application a un flux bidirectionnel. Si les interactions de l'utilisateur doivent demander quelque chose au modèle et que le résultat de cette demande modifie immédiatement l'interface utilisateur, envisagez MVP.
Quand utiliser MVVM
Vous voudrez utiliser MVVM lorsque :
- Vous devez partager un projet avec un designer et le travail de conception et de développement peut se faire de manière indépendante.
- Vous avez besoin de tests unitaires pour vos solutions.
- Vous devez disposer de composants réutilisables, à la fois dans et entre les projets de votre organisation.
- Vous souhaitez plus de flexibilité pour modifier vos vues sans avoir à refactoriser une autre logique dans la base de code.
Quel motif choisir ?
La principale raison d'utiliser un modèle de conception est de réduire la complexité. Vous pouvez le faire en réduisant la complexité globale ou en remplaçant la complexité inconnue par la familière. Si un modèle de conception ne peut pas réduire la complexité de l'une ou l'autre de ces deux manières, n'en utilisez aucun; cela n'ajoutera aucune valeur.
Si vous êtes vraiment sûr de devoir utiliser un modèle de conception, essayez de faire une liste de contrôle. Basez-vous sur les situations que vous avez vues ici et choisissez celle qui convient le mieux à votre projet.