Le modèle MVC
Le modèle MVC
Objectifs
- Connaitre le MVC – Model View Controller
-
Présentation
- Le MVC, acronyme de Model View Controller (Modèle Vue Contrôleur), est une technique de développement avancée devenue un design pattern(En informatique, et plus particulièrement en développement logiciel, un patron de conception (souvent appelé design pattern) est un arrangement caractéristique de modules, reconnu comme bonne pratique en réponse à un problème de conception d’un logiciel. Il décrit une solution standard, utilisable dans la conception de différents logiciels), qui découpe l’application en 3 couches principales, nommées Modèle, Vue et Contrôleur. La distinction de ces couches :
- La partie Modèle: Cette partie gère les données du site. Elle récupère les données dans la base de données (via des requêtes SQL) et les met en forme pour qu’elles puissent être traitées par la partie Contrôleur.
- La partie Vue Cette partie est dédiée à l’affichage sur l’écran. Elle est généralement composée d’un mélange de code HTML , JSP et JAVA.
- La partie Contrôleur: Cette partie contient la portion "intelligente" du code. Elle reçoit les données du visiteur, demande au Modèle de trouver les données correspondantes dans la base de données, analyse les données fournies par le Modèle et décide ce qui doit être affiché par la partie Vue.
- Ce modèle de conception (design pattern) a été imaginé à la fin des années 1970 pour le langage Smalltalk afin de bien séparer le code de l’interface graphique de la logique applicative. Il est utilisé dans de très nombreux langages : bibliothèques Swing et Model 2 (JSP) de Java, frameworks PHP, ASP.NET MVC, etc.
-
Rôle du modèle
- Le modèle correspond à la logique métier et utilise des composants dits métiers. Le Modèle désigne le traitement à exécuter demandé par l’utilisateur.
- Il est appelé par le Contrôleur après que les paramètres de la requête aient été une première fois vérifiés. Ces derniers sont des données d’entrée nécessaires à la bonne exécution du processus métier.
- Le modèle représente le comportement de l’application : traitements des données, interactions avec la base de données, etc. Il décrit ou contient les données manipulées par l’application. Il assure la gestion de ces données et garantit leur intégrité.
-
Rôle du contrôleur
- Ces dernières peuvent apparaître lors d’un contrôle de paramètres ou de l’exécution d’un traitement par le Modèle.
- Le Contrôleur est en fait responsable du bon déroulement de la requête de l’utilisateur, de sa réception au renvoi de la réponse à l’utilisateur.
- Comme le nom "Contrôleur" l’indique, sa tâche principale est de contrôler, comprenant la gestion et la synchronisation des événements. Cela consiste à :
- réceptionner la requête de l’utilisateur ;
- effectuer un contrôle préliminaire des paramètres de la requête avant de les utiliser dans un traitement ;
- définir l’action à entreprendre selon la méthode appelé : GET , POST, PUT, etc. ;
- exécuter le traitement indiqué par la méthode ;
- récupérer le résultat du traitement ;
- gérer les erreurs si elles existent ;
- communiquer le résultat du traitement à la Vue afin qu’elle le formate ;
- récupérer les données formatées par la Vue ;
- renvoyer ces données à l’utilisateur.
-
Rôle de la vue
- La Vue est la partie visible de l’iceberg. Son rôle est d’afficher les données résultant du traitement du Modèle.
- La Vue récupère ces informations depuis le Contrôleur, formate les données si besoin puis construit la présentation avant de la renvoyer au Contrôleur.
- Cette présentation, ou la réponse à la requête doit être sous le format de données attendu par l’utilisateur (client).
-
Avantages et inconvénients
- Le modèle MVC offre une séparation claire des responsabilités au sein d’une application, en conformité avec les principes de conception déjà étudiés : responsabilité unique, couplage faible et cohésion forte. Le prix à payer est une augmentation de la complexité de l’architecture.
- Dans le cas d’une application Web, l’utilisation du modèle MVC permet aux pages HTML (qui constituent la partie Vue) de contenir le moins possible de code serveur, étant donné que le scripting est regroupé dans les deux autres parties de l’application.
L’objectif du MVC est de bien séparer les données, les traitements et la présentation de ces données. La règle est "diviser pour mieux régner". Chaque couche est spécialisée, donc est dédiée aux tâches qu’elles savent faire le mieux.
- Le Contrôleur est la couche centrale entre le Modèle et la Vue. Son rôle consiste à coordonner les tâches à exécuter, et à gérer les erreurs.