Modèle Vue Contrôleur - Model–view–controller

Diagramme des interactions au sein du modèle MVC

Modèle-vue-contrôleur (généralement appelé MVC ) est un modèle de conception de logiciel couramment utilisé pour développer des interfaces utilisateur qui divisent la logique de programme associée en trois éléments interconnectés. Ceci est fait pour séparer les représentations internes des informations de la manière dont les informations sont présentées et acceptées par l'utilisateur.

Traditionnellement utilisé pour les interfaces utilisateur graphiques ( GUI ) de bureau , ce modèle est devenu populaire pour la conception d'applications Web . Les langages de programmation populaires ont des frameworks MVC qui facilitent la mise en œuvre du modèle.

Composants

Modèle
L'élément central du motif. C'est la structure de données dynamique de l'application, indépendante de l'interface utilisateur. Il gère directement les données, la logique et les règles de l'application.
Vue
Toute représentation d'informations telle qu'un graphique, un diagramme ou un tableau. Plusieurs vues des mêmes informations sont possibles, comme un graphique à barres pour la direction et une vue tabulaire pour les comptables.
Manette
Accepte l'entrée et la convertit en commandes pour le modèle ou la vue.

En plus de diviser l'application en ces composants, la conception modèle-vue-contrôleur définit les interactions entre eux.

  • Le modèle est responsable de la gestion des données de l'application. Il reçoit l'entrée de l'utilisateur du contrôleur.
  • La vue rend la présentation du modèle dans un format particulier.
  • Le contrôleur répond à l'entrée de l'utilisateur et effectue des interactions sur les objets du modèle de données. Le contrôleur reçoit l'entrée, la valide éventuellement, puis passe l'entrée au modèle.

Comme avec d'autres modèles logiciels, MVC exprime le "noyau de la solution" à un problème tout en permettant de l'adapter à chaque système. Les conceptions MVC particulières peuvent varier considérablement de la description traditionnelle ici.

Histoire

L'une des idées phares dans le développement précoce des interfaces utilisateur graphiques, MVC est devenue l'une des premières approches pour décrire et implémenter des constructions logicielles en fonction de leurs responsabilités .

Trygve Reenskaug a introduit MVC dans Smalltalk -79 lors d'une visite au Xerox Palo Alto Research Center (PARC) dans les années 1970. Dans les années 1980, Jim Althoff et d'autres ont implémenté une version de MVC pour la bibliothèque de classes Smalltalk-80. Ce n'est que plus tard qu'un article de 1988 dans The Journal of Object Technology (JOT) a exprimé MVC comme un concept général.

Le modèle MVC a par la suite évolué, donnant naissance à des variantes telles que modèle-vue-contrôleur hiérarchique (HMVC), modèle-vue-adaptateur (MVA), modèle-vue-présentateur (MVP), modèle-vue-vue-modèle (MVVM), et d'autres qui ont adapté MVC à différents contextes.

L'utilisation du modèle MVC dans les applications web a explosé en popularité après l'introduction de NeXT de WebObjects en 1996, qui a été initialement écrit en Objective-C (qui sont fortement inspirés de Smalltalk) et a contribué à faire respecter les principes MVC. Plus tard, le modèle MVC est devenu populaire auprès des développeurs Java lorsque WebObjects a été porté sur Java . Les frameworks ultérieurs pour Java, tels que Spring (publié en octobre 2002), ont continué le lien fort entre Java et MVC. L'introduction des frameworks Django (juillet 2005, pour Python ) et Rails (décembre 2005, pour Ruby ), qui mettaient tous deux l'accent sur le déploiement rapide, a accru la popularité de MVC en dehors de l'environnement d'entreprise traditionnel dans lequel il a longtemps été populaire.

Utilisation dans les applications Web

Bien qu'à l'origine développé pour l'informatique de bureau, MVC a été largement adopté comme conception d' applications World Wide Web dans les principaux langages de programmation . Plusieurs frameworks Web ont été créés pour appliquer le modèle. Ces frameworks logiciels varient dans leurs interprétations, principalement dans la manière dont les responsabilités MVC sont réparties entre le client et le serveur .

Certains frameworks Web MVC adoptent une approche client léger qui place la quasi-totalité de la logique du modèle, de la vue et du contrôleur sur le serveur. Dans cette approche, le client envoie soit des demandes d' hyperliens , soit des soumissions de formulaires au contrôleur, puis reçoit une page Web complète et mise à jour (ou un autre document) de la vue ; le modèle existe entièrement sur le serveur.

Voir également

Les références

Bibliographie