web-dev-qa-db-fra.com

Qu'est-ce que MVC (Model View Controller)?

J'ai entendu parler du terme MVC (Model View Controller) avec une tonne de Buzz ces derniers temps, mais de quoi s'agit-il vraiment?

22
Chris Pietschmann

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

21
Ruben

J'aime cet article par 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 boîtes à outils d'interface utilisateur les plus modernes.

Le terme semble avoir trouvé une nouvelle vie dans les cercles de programmation Web récemment. Je ne sais pas si c'est vraiment vraiment MVC, ou si on réutilise simplement le nom pour des idées étroitement liées mais légèrement différentes.

10
Luke Halliwell

MVC est un modèle de conception créé à l'origine dans les vieux jours de 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 IO 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 avoir une vue qui la représente sous forme de feuille de calcul et une vue qui la représente sous forme de tableau croisé dynamique.

MVC moderne a été pollué par de faux logiciels indésirables MVC, je vais donc laisser les autres répondre à cette question.

5
FlySwat

Comme l'indique l'étiquette de votre question, il s'agit d'un motif 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 d’entreprise Vue = Couche de sortie (i.e code HTML) Contrôleur = Couche de transfert de message

Ainsi, lorsque les gens parlent de MVC, ils parlent de diviser le code en haut 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.

2
Rob Booth

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 des données. Il sert d'interface entre la base de données et l'application (en tant qu'objet de données). Il gérera les validations, les associations, les transactions, etc.

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

Voir Affiche la sortie aux utilisateurs.

2
Abhishek Jain

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

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

Model-view-controller (MVC) 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

1
Chris Pietschmann

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

1
dacracot

This Quel est MVC article de blog sur Oreilly a vous couvert.

0
ctcherry

Modèle de conception MVC:

4 parties = 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 qu'il existe de nouvelles données/états.

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

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

0
specialk1st

MVC est un modèle d'architecture logicielle qui sépare la représentation de l'interaction de l'utilisateur. En règle générale, le modèle est constitué de données d'application et de fonctions qui interagissent avec lui, tandis que la vue présente ces données à l'utilisateur. le contrôleur intervient entre les deux.

0
jswoody