MVC vs MVVM - Différence entre eux
Principales différences entre MVC et MVVM
- Le framework MVC est un modèle architectural qui sépare une application en trois composants logiques principaux : modèle, vue et contrôleur. D'autre part, MVVM facilite une séparation du développement de l'interface utilisateur graphique à l'aide d'un langage de balisage ou de code GUI.
- Dans MVC, le contrôleur est le point d'entrée de l'application, tandis que dans MVVM, la vue est le point d'entrée de l'application.
- Le composant modèle MVC peut être testé séparément de l'utilisateur, tandis que MVVM est facile à réaliser pour des tests unitaires séparés et le code est piloté par les événements.
- L'architecture MVC établit une relation « un-à-plusieurs » entre le contrôleur et la vue, tandis que l'architecture MVVM définit une relation « un-à-plusieurs » entre la vue et le ViewModel.
Qu'est-ce que MVC?
Pour Cadre MVC est un modèle architectural qui sépare une application en trois composants logiques principaux : modèle, vue et contrôleur. D'où l'abréviation MVC. La forme complète MVC est Model View Controller.
Dans cette architecture, un composant est conçu pour gérer des aspects de développement spécifiques d'une application. MVC sépare la logique métier et la couche de présentation les unes des autres. Ce modèle architectural est principalement utilisé pour les interfaces utilisateur graphiques (GUI) de bureau.
Qu'est-ce que MVVM ?
L'architecture MVVM facilite une séparation du développement de l'interface utilisateur graphique à l'aide d'un langage de balisage ou d'un code GUI. La forme complète de MVVM est Model-View-ViewModel.
Le modèle de vue de MVVM est un convertisseur de valeur, ce qui signifie qu'il incombe au modèle de vue d'exposer les objets de données du modèle de manière à ce que les objets soient facilement gérés et présentés.
Modèle MVC
Les trois composants MVC importants sont :
- Modèle: Il comprend toutes les données et leur logique associée.
- Vue: Présenter les données à l’utilisateur ou gérer l’interaction de l’utilisateur.
- Contrôleur: Une interface entre les composants Model et View.
Voyons chacun de ces composants en détail :
Modèle
Le composant de modèle stocke les données et la logique associée. Il représente les données transférées entre les composants du contrôleur ou toute autre logique métier associée.
Par exemple, un objet Controller vous aide à récupérer les informations client de la base de données. Il manipule les données et les renvoie à la base de données ou les utilise pour restituer les mêmes données.
Voyez
Une vue est la partie de l'application qui représente la présentation des données. Les vues sont créées par les données collectées à partir des données du modèle. Une vue demande au modèle de fournir des informations afin qu'il renvoie la sortie à l'utilisateur.
La vue représente également les données des graphiques, des diagrammes et des tableaux. Par exemple, n'importe quelle vue client inclura tous les composants de l'interface utilisateur tels que les zones de texte, les listes déroulantes, etc.
Le contrôleur est la partie de l'application qui gère l'interaction de l'utilisateur. Le contrôleur interprète les entrées de la souris et du clavier de l'utilisateur, informant le modèle et la vue de les modifier le cas échéant.
Un contrôleur envoie des commandes au modèle pour mettre à jour son état (par exemple, enregistrer un document spécifique). Le contrôleur envoie également des commandes à sa vue associée pour modifier la présentation de la vue (par exemple, faire défiler un document particulier).
Modèle MVVM
Voici un modèle pour MVVM :
L'architecture MVVM offre une liaison de données bidirectionnelle entre la vue et le modèle de vue. Il vous aide également à automatiser la propagation des modifications à l'intérieur de View-Model vers la vue. Le modèle de vue utilise le modèle d'observateur pour apporter des modifications au modèle de vue.
Voyons ce composant en détail :
Modèle
Le modèle stocke les données et la logique associée. Il représente les données transférées entre les composants du contrôleur ou toute autre logique métier associée.
Par exemple, un objet Controller récupérera les informations sur les élèves de la base de données de l'école. Il manipule les données et les renvoie à la base de données ou les utilise pour restituer les mêmes données.
Voyez
La vue représente les composants de l'interface utilisateur tels que HTML, CSS, jQuery, etc.
La vue de modèle est responsable de l'affichage des données reçues du contrôleur en tant que résultat. Cette vue transforme également le ou les modèles en interface utilisateur (UI).
Voir le modèle
Le modèle de vue est chargé de présenter les fonctions, commandes et méthodes, pour prendre en charge l'état de la vue. Il est également responsable du fonctionnement du modèle et de l'activation des événements dans la vue.
Différence entre MVC et MVVM Architecture
Voici la différence importante entre MVVM et MVC
MVC (Contrôleur de vue de modèle) | MVVM (Modèle Vue VueModèle) |
---|---|
Le contrôleur est le point d’entrée de l’application. | La vue est le point d'entrée de l'application. |
Une à plusieurs relations entre le contrôleur et la vue. | Une à plusieurs relations entre View et View Model. |
La vue n'a pas de référence au contrôleur | View a des références au View-Model. |
MVC est un ancien modèle | MVVM est un modèle relativement nouveau. |
Difficile de lire, modifier, tester unitairement et réutiliser ce modèle | Le processus de débogage sera compliqué lorsque nous aurons des liaisons de données complexes. |
Le composant du modèle MVC peut être testé séparément de l'utilisateur | Facile pour les tests unitaires séparés et le code est piloté par les événements. |
Caractéristiques de MVC
Voici les fonctionnalités importantes de MVC :
- Testabilité facile et sans friction. Framework hautement testable, extensible et enfichable
- Cela vous permet également de tirer parti des fonctionnalités existantes offertes par ASP.NET, Django, JSP, etc.
- Il offre un contrôle total sur votre code HTML ainsi que sur vos URL.
- Il prend en charge le développement piloté par les tests (TDD)
- Cette architecture offre une séparation de la logique
- Permet le routage des URL optimisées pour le référencement.
- Propose de cartographier des URL compréhensibles et consultables.
Caractéristiques de MVVM
Voici les fonctionnalités de l’architecture MVVM :
- MVVM est écrit pour les applications de bureau avec des capacités de liaison de données – XAML et l'interface INotifyPropertyChanged
- Si vous souhaitez effectuer des modifications dans le View-Model, le View-Model utilise un modèle d'observateur.
- Le modèle MVVM est principalement utilisé par WPF, Silverlight, nRoute, etc.
Avantages de MVC
Voici les avantages/avantages de MVC
- Un support plus facile pour un nouveau type de clients
- Le développement des différents composants peut être réalisé en parallèle.
- Il évite la complexité en divisant une application en unités distinctes (MVC)
- Il utilise uniquement un modèle de contrôleur frontal qui traite les demandes d'applications Web à l'aide d'un seul contrôleur.
- Offre le meilleur support pour le développement piloté par les tests
- Cela fonctionne bien pour les applications Web, qui sont prises en charge par de grandes équipes de concepteurs et de développeurs Web.
- Il fournit une séparation nette des préoccupations (SoC).
- Tous les objets classés et sont indépendants les uns des autres afin que vous puissiez les tester séparément.
- MVC permet le regroupement logique des actions associées sur un contrôleur.
Avantages de MVVM
Voici les avantages/avantages de MVVM
- La logique métier est découplée de Ul
- Facile à entretenir et à tester
- Composants faciles à réutiliser
- Architecture faiblement couplée : MVVM rend votre architecture d'application faiblement couplée.
- Vous pouvez écrire des cas de tests unitaires pour le modèle de vue et la couche modèle sans avoir besoin de référencer la vue.
Inconvénients du MVC
Voici les inconvénients/inconvénients de MVC
- La logique métier est mélangée à Ul
- Difficile de réutiliser et de mettre en œuvre des tests
- Pas de support de validation formel
- Complexité accrue et inefficacité des données
- La difficulté d'utiliser MVC avec l'interface utilisateur moderne
- Il est nécessaire que plusieurs programmeurs effectuent une programmation parallèle.
- La connaissance de plusieurs technologies est requise.
Inconvénients de MVVM
Voici les inconvénients/inconvénients de MVVM
- Maintenance de nombreux codes dans le contrôleur
- Certaines personnes pensent que pour les interfaces utilisateur simples de l'architecture MVVM, cela peut être excessif.
- N'offre pas de couplage étroit entre la vue et le modèle de vue