Question

J'ai entendu le terme MVC (Model View Controller) avec une tonne de Buzz dernièrement, mais de quoi s'agit-il vraiment?

Était-ce utile?

La solution

Vous voudrez peut-être jeter un coup d'œil à ce que Martin Fowler a à dire sur les architectures MVC, MVP et d'interface utilisateur en général, à l'adresse Site de Martin Fowlers .

Autres conseils

J'aime cet article de Martin Fowler. Vous verrez que MVC est plus ou moins mort, à proprement parler, dans son domaine original de programmation d'interface utilisateur riche. La distinction entre View et Controller ne s’applique pas aux kits d’outils d’interface utilisateur les plus modernes.

Ce terme semble avoir récemment repris vie dans les milieux de la programmation Web. Cependant, je ne suis pas sûr qu'il s'agisse vraiment de MVC ou de réutiliser simplement le nom pour des idées étroitement liées mais légèrement différentes.

MVC est un modèle de conception qui a été mis au point à l’époque ancienne du Smalltalk.

Le concept était qu'un modèle représenterait l'état et la logique de votre application et que les contrôleurs géreraient les entrées / sorties entre "Vues".

Une vue était une représentation de l'état dans le modèle. Par exemple, votre modèle peut être un document de feuille de calcul et vous pouvez disposer d’une vue qui le représente sous forme de feuille de calcul et d’une vue qui le représente sous forme de tableau croisé dynamique.

Modern MVC a été pollué par de faux problèmes de Web MVC. Je laisserai donc les autres répondre à cette question.

La balise de votre question indique qu'il s'agit d'un modèle de conception. Mais cela ne vous aide probablement pas. En gros, c’est un moyen d’organiser votre code en groupes logiques qui permettent de séparer les différentes parties et de les modifier facilement.

Simplification: Modèle = structure de données / logique métier Vue = couche de sortie (code HTML) Contrôleur = couche de transfert de message

Ainsi, lorsque les gens parlent de MVC, ils parlent de diviser le code en code supérieur en groupes logiques pour le garder propre, structuré et, espérons-le, faiblement couplé. En suivant ce modèle, vous devriez être en mesure de créer des applications qui pourraient avoir une vue complètement changée en une autre sans avoir à toucher à votre contrôleur ou à votre modèle (c'est-à-dire en passant de HTML à RSS).

Il existe des tonnes et des tonnes de didacticiels sur Google, et je suis sûr que vous en découvrirez au moins un qui l'expliquera en termes de clic avec vous.

Voici une description naïve de MVC: http: // www.devcodenote.com/2015/04/mvc-model-view-controller.html

Un extrait:

Définition: Il s'agit d'un modèle de conception qui sépare une application en plusieurs couches de fonctionnalités.

Les couches:

Modèle Représente les données. Il agit en tant qu'interface entre la base de données et l'application (en tant qu'objet de données). Il gérera les validations, associations, transactions, etc.

Contrôleur Il rassemble et traite les données. Gère le code qui sélectionne les données et leur messagerie.

Voir Affiche la sortie aux utilisateurs.

Wikipedia semble le décrire le mieux jusqu'à présent:

http://en.wikipedia.org/wiki/Model-view-controller

Le modèle MVC (Model-View-Controller) est un modèle architectural utilisé en génie logiciel. L'utilisation réussie du modèle isole la logique métier des considérations relatives à l'interface utilisateur, ce qui permet de créer une application dans laquelle il est plus facile de modifier l'apparence visuelle de l'application ou les règles commerciales sous-jacentes sans affecter les autres. Dans MVC, le modèle représente les informations (les données) de l'application et les règles de gestion utilisées pour manipuler les données. la vue correspond à des éléments de l'interface utilisateur tels que du texte, des éléments de case à cocher, etc. et le contrôleur gère les détails impliquant la communication au modèle des actions de l'utilisateur telles que les frappes au clavier et les mouvements de la souris.

Trygve Reenskaug du PARC de Xerox a été le premier à décrire le paradigme de l'interface utilisateur de MVC ou Model-View-Controller. Paru pour la première fois dans le magazine Byte, volume 6, numéro 8, en août 1981.

This Qu'est-ce que l'article de blog MVC sur Oreilly vous a couvert?

MVC est un modèle d'architecture logicielle qui sépare la représentation de l'interaction de l'utilisateur. Généralement, le modèle comprend des données d'application et des fonctions qui interagissent avec elles, tandis que la vue présente ces données à l'utilisateur. le contrôleur sert d'intermédiaire entre les deux.

Modèle de conception MVC:

4 pièces = Utilisateur, Vue, Contrôleur, Modèle.

utilisateur:  - voit la vue et utilise le contrôleur.

Modèle:  - contient les données et met à jour le modèle indiquant de nouvelles données / nouveaux états.

Voir:  - affiche les données du modèle.

Contrôleur:  - prend la demande de l'utilisateur pour obtenir ou définir des informations, puis communique avec la vue ou le modèle, respectivement.  - il "obtient" via la vue.  - il " définit " via le modèle.

C'est un moyen de séparer les fonctionnalités sous-jacentes de votre application (modèle) de la manière dont elle interagit avec l'utilisateur (vue). Le contrôleur coordonne la manière dont le modèle et la vue se parlent.

Même si cela fait fureur pour le moment, il est important de garder à l'esprit qu'empêcher le modèle lui-même de déterminer exactement comment ses données sont présentées à l'utilisateur peut être perçu comme une chose négative. L'exemple le plus évident est avec HTML. L'intention initiale du HTML était de séparer clairement le modèle (HTML) de la vue (page Web rendue) via un contrôleur (le navigateur). Il ya eu une telle réaction contre cette intention initiale que les navigateurs sont critiqués s’ils ne rendent pas un pixel de page parfait pour la vue souhaitée par le concepteur.

MVC est un moyen de partitionner un élément d'interface utilisateur en 3 concepts distincts. Le modèle correspond aux données sur lesquelles l'interface fonctionne. La vue est la façon dont l'élément est représenté visuellement (ou peut-être de manière audible?). Le contrôleur est la logique qui agit sur les données.

Par exemple, si vous souhaitez manipuler du texte dans une interface utilisateur. Une simple chaîne pourrait représenter les données. La vue pourrait être un champ de texte. Le contrôleur est la logique qui traduit les entrées de l'utilisateur - par exemple, les caractères ou la souris - et qui modifie le modèle de données sous-jacent.

Comme beaucoup l'ont déjà dit, MVC est un modèle de conception. J'enseigne maintenant à l'un de mes collègues et je l'ai expliqué de cette façon:

M odels - Couche d'accès aux données. Il peut s’agir d’un accès direct aux données, de services Web, etc.

V iews - Couche de présentation de votre application.

C ontrollers - C’est la logique applicative de votre application.

Ce modèle améliore le développement piloté par les tests.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top