Question

j'ai trouvé Que sont mvp et mvc et quelle est la différence mais cela n'a pas vraiment répondu à cette question.

J'ai récemment commencé à utiliser MVC car cela fait partie du framework que moi et mon partenaire de travail allons utiliser.Nous l'avons choisi parce qu'il semblait simple et séparait le processus de l'affichage. Y a-t-il des avantages en plus que nous ne connaissons pas et que nous pourrions manquer ?

Avantages

  1. L'affichage et le traitement sont séparés


Les inconvénients

  1. Aucun jusqu'à présent
Était-ce utile?

La solution

MVC est la séparation de mmodèle, vvue et ccontrôleur - ni plus, ni moins.C'est simplement un paradigme ;un idéal que vous devriez avoir à l’esprit lors de la conception de cours.Évitez de mélanger le code des trois catégories dans une seule classe.

Par exemple, alors qu'une grille de table voir devrait évidemment présenter les données une fois affichées, il ne devrait pas y avoir de code indiquant où récupérer les données, ni quelle est leur structure native (le modèle) est comme.De même, bien qu'il puisse avoir pour fonction de résumer une colonne, la sommation réelle est censée avoir lieu dans le manette.

Une boîte de dialogue « enregistrer le fichier » (voir) transmet finalement le chemin, une fois choisi par l'utilisateur, au manette, qui demande alors au modèle pour les données et effectue la sauvegarde réelle.

Cette séparation des responsabilités permet une certaine flexibilité à long terme.Par exemple, comme la vue ne se soucie pas du modèle sous-jacent, il est plus facile de prendre en charge plusieurs formats de fichiers :ajoutez simplement une sous-classe de modèle pour chacun.

Autres conseils

La séparation des préoccupations est le plus important.

Être capable de séparer ces composants rend le code plus facile à réutiliser et à tester indépendamment.Si vous ne savez pas réellement ce qu'est MVC, veillez à comprendre les opinions des gens, car il existe encore des conflits sur ce qu'est le "Modèle" (qu'il s'agisse des objets métier/DataSets/DataTables ou s'il représente le service sous-jacent). couche).

J'ai vu toutes sortes d'implémentations qui s'appellent MVC mais ne le sont pas exactement et comme les commentaires dans L'article de Jeff show MVC est un point controversé sur lequel je ne pense pas que les développeurs seront jamais pleinement d'accord.

Un bon aperçu de tous les différents types de MVC est disponible ici.

Jeff a un poste à ce sujet, sinon j'ai trouvé quelques documents utiles sur le site d'Apple, dans les tutoriels Cocoa (celui-ci Par exemple).

Je pense qu'un autre avantage de l'utilisation du modèle MVC est qu'il ouvre les portes à d'autres approches au design, comme MVP/Presenter first et les nombreux autres modèles MV*.

Sans cette ségrégation fondamentale des « composants » de conception, l'adoption de ces techniques serait beaucoup plus difficile.

Je pense que cela aide à rendre votre code encore plus basé sur l'interface.Non seulement au sein du projet individuel, mais vous pouvez presque commencer à développer des « vues » communes, ce qui signifie que vous pouvez modéliser beaucoup plus de code « grognement » utilisé dans vos applications.Par exemple, une "vue de données" très abstraite qui prend simplement un tas de données et les jette dans une disposition de grille commune.

Modifier:

Si je me souviens bien, c'est un très bon podcast sur les modèles MV* (je l'ai écouté il y a quelques temps !)

Un inconvénient auquel je peux penser est que si vous avez besoin d'un accès très rapide à vos données (par exemple, les données d'animation de jeu comme la position des os.) Il est très inefficace de conserver une couche de séparation dans ce cas.

Sinon, pour la plupart des autres applications qui sont davantage basées sur les données que sur les graphiques, cela semble être une manière logique de piloter une interface utilisateur.

Si vous suivez les podcasts stackoverflow, vous pouvez entendre Jeff (et Geoff ?) discuter de sa grandeur. http://blog.stackoverflow.com/2008/08/podcast-17/.Mais rappelez-vous que l’utilisation de ces couches distinctes signifie que les choses seront plus faciles à l’avenir – et plus difficiles maintenant.Et des couches peut rendre les choses plus lentes.Et vous n’en aurez peut-être pas besoin.Mais que cela ne vous empêche pas d'apprendre de quoi il s'agit : lors de la construction de systèmes volumineux, robustes et durables, c'est inestimable.

Il sépare le modèle et la vue contrôlée par un contrôleur, en ce qui concerne le modèle, vos modèles doivent suivre l'architecture OO, les améliorations futures et toute autre maintenance de la base de code devraient être très faciles et la base de code devrait être réutilisable.

Le même modèle peut avoir n'importe quel nombre de vues, par exemple) les mêmes informations peuvent être affichées sous différentes vues graphiques.La même vue peut avoir un nombre différent de modèles, par exemple) différents détails peuvent être affichés sous forme d'un seul graphique, par exemple sous forme de graphique à barres.C'est ce qu'est la réutilisation de la vue et du modèle.

Les améliorations des vues et autres supports de nouvelles technologies pour créer la vue peuvent être facilement mis en œuvre.

Le gars qui travaille sur la vue n'a pas besoin de connaître la base de code du modèle sous-jacent et son architecture, vice versa pour le modèle.

MVC n'est qu'un modèle de conception général qui, dans le contexte du développement d'applications Web Lean, permet au développeur de conserver facilement le balisage HTML dans la couche de présentation d'une application (la vue) séparé des méthodes qui reçoivent et gèrent les demandes des clients (la vue). contrôleurs) et les représentations de données qui sont renvoyées dans la vue (les modèles).Il s’agit avant tout de séparer les préoccupations, c’est-à-dire de conserver le code qui sert un objectif fonctionnel (par ex.traitement des demandes des clients) séparé du code qui répond à un objectif fonctionnel totalement différent (par ex.représentant des données).

C'est le même principe qui explique pourquoi quiconque a passé plus de 5 minutes à essayer de créer un site Web peut apprécier la nécessité de conserver votre balisage HTML, JavaScript et CSS dans des fichiers séparés :Si vous transférez simplement tout votre code dans un seul fichier, vous vous retrouvez avec des spaghettis pratiquement non modifiables par la suite.

Puisque vous avez demandé d'éventuels "inconvénients": Je ne suis pas une autorité en matière de conception d'architecture logicielle, mais sur la base de mon expérience de développement avec MVC, je pense qu'il est également important de souligner que suivre un modèle de conception MVC strict et sans fioritures est plus utile pour 1) les applications Web légères, ou 2. ) en tant que couche d'interface utilisateur d'une application d'entreprise plus grande.Je suis surpris que l'on ne parle pas davantage de cette spécification, car MVC ne contient aucune définition explicite de votre logique métier, de vos modèles de domaine ou de quoi que ce soit dans la couche d'accès aux données de votre application.Quand j'ai commencé à développer dans ASP.NET MVC (c'est-à-direavant même de savoir que d'autres architectures logicielles existaient), je me retrouvais avec des contrôleurs très volumineux ou même avec des modèles remplis de logique métier qui, si j'avais travaillé sur des applications d'entreprise, auraient rendu la tâche difficile pour d'autres développeurs qui n'étaient pas familiers avec mon code à modifier (c'est-à-direplus de spaghettis).

L'un des principaux avantages de MVC, qui n'a pas été mentionné ici, est que MVC fournit des URL RESTful qui permettent le référencement.Lorsque vous nommez judicieusement vos contrôleurs et vos actions, il est plus facile pour les moteurs de recherche de trouver votre site s'ils se contentent de consulter les URL de votre site.Par exemple, vous avez un site Web de vente de voitures et une page qui affiche les voitures Lamborghini Veneno disponibles, au lieu d'avoir www.MyCarSale.com/product/6548 en vous référant à la page que vous pouvez choisir www.MyCarSale.com/SportCar/Lamborghini-Veneno URL à des fins de référencement.

Ici est une bonne réponse aux avantages MVC et ici est un article Comment créer une URL optimisée pour le référencement.

Le principal avantage de l'architecture MVC est de différencier les couches d'un projet dans le modèle, la vue et le contrôleur pour la réutilisation du code, une maintenance et une maintenance faciles.La meilleure chose est que le développeur se sent bien d'ajouter du code entre la maintenance du projet.

Ici vous pouvez voir quelques points supplémentaires sur Principaux avantages de l'architecture MVC.

![architecture mvc][1]

Modèle-vue-contrôleur (MVC) est un modèle d'architecture logicielle pour la mise en œuvre d'interfaces utilisateur.Il divise une application logicielle donnée en trois parties interconnectées, de manière à séparer les représentations internes des informations de la manière dont les informations sont présentées ou acceptées par l'utilisateur.

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