Design Pattern MVC
Le MVC (acronyme de “Model-View-Controller”) est l'un des Design Pattern les plus répandus. Et pour cause, celui-ci permet d'être très efficace et d'avoir un code très organisé. Dans cette page, nous allons découvrir le fonctionnement du pattern “MVC”.
I. Présentation du MVC
L'idée de base, c'est donc, vous l'aurez compris, de découper notre code en trois parties : Le modèle, la vue, et le contrôleur. Tout notre code sera ainsi réparti dans ces trois parties, qui vont interagir pour créer le rendu final. Commençons par voir chacune des trois parties d'un peut plus près.
a) Le modèle, bibliothèque d'informations
Le modèle est la partie du programme qui va traiter et récupérer les données. C'est dans le modèle que nous pourrons par exemple effectuer une requête SQL ou lire le contenu d'un fichier. Le modèle doit ainsi présenter une liste de méthodes permettant l'accès aux données, et éventuellement une partie du traitement de celles-ci.
Le modèle sera commandé par le contrôleur, et pourra recevoir des évènements de la vue (les actions de l'utilisateur, en général). Dans certains cas, le modèle peut également envoyer les informations directement à la vue, sans passer par le contrôleur.
b) Le contrôleur, coeur du système
Le contrôleur doit utiliser les modèles et vues pour gérer l'application. C'est cette partie du code qui va aller chercher les données dans un modèle, et utiliser les vues pour les transmettre à l'utilisateur. Le contrôleur doit assurer la synchronisation de tous les évènements, et constituer la partie logique du programme.
Le contrôleur va donc devoir gérer les modèles et vues nécessaires à l'application. En terme général, un contrôleur sera amené à utiliser plusieurs modèles, et éventuellement plusieurs vues.
c) La vue, partie graphique
La vue constitue l'interface entre le programme et l'utilisateur. La vue doit, dans un premier temps, afficher les informations, fournies par le modèle où le contrôleur. Ensuite, la vue doit également transmettre les éventuelles actions de l'utilisateur au contrôleur.
La plupart du temps, la vue est gérée directement par le contrôleur, même s'il arrive que les informations d'un modèle soient envoyées à une vue sans passage par un contrôleur.
II. Avantages et inconvénients du MVC
La clarté
La clarté du code est souvent le premier avantage du MVC. En effet, chaque partie est organisée de façon parfaitement logique, et la séparation permet ainsi d'avoir un code beaucoup plus cohérent.
Parcourir le code
Là encore, le fait de séparer le code permet de gagner énormément de temps. Dans le cas de la conception d'un site par exemple, les injections SQL, le PHP et le HTML sont ainsi parfaitement séparés. Ainsi, lorsque l'on doit modifier la partie graphique par exemple, nous n'avons pas à relire le code logique ou l'accès aux données.
Le travail en équipe
Le travail en équipe est également simplifié par le MVC, dans la mesure où chaque partie peut être modifiée indépendamment. Là encore, une vue pourra être complètement reconstruite par exemple, sans toucher au Contrôleurs ou Modèles.
Maintenance
La séparation logique du code permet également une maintenance beaucoup plus facile, dans la mesure ou chaque partie logique est indépendante des autres. De la même façon, les modèles peuvent, par exemple, être utilisés par plusieurs contrôleurs, ce qui rends le code général plus flexible, et donc plus facile à modifier.
Limites de flexibilité
La flexibilité du MVC limite malheureusement sont efficacité dans certains cas. Pour parer à cela, d'autres composants sont parfois ajoutés permettant un contrôle plus flexible de l'application, notamment dans le développement web.
Ces autres composants vont, en général, permettre d'autres interactions entre les trois parties du code, de façon simplifier la structure de l'application.
Dans le cas d'une application Web, il n'est pas rare qu'un moteur de template et un système de langue soient utilisés avec le MVC, permettant ainsi une séparation absolument totale du code. Les vues, par exemple, ne contiendrons ainsi plus que du HTML, et aucun code PHP, ni aucun texte.
III. Tutoriels sur son implémentation
IV. Conclusion
Nous avons ainsi pu voir de manière très globale le fonctionnement du Design Pattern “MVC”.