Selon Sun et Msdn c'est un modèle de conception.
D'après Wikipedia c'est un motif architectural
Par rapport aux modèles de conception, les modèles architecturaux ont une échelle plus grande. (Wikipedia - motif architectural )
Ou est-ce un motif architectural qui a aussi un motif de conception?
Lequel est vrai?
MVC est davantage un motif architectural, mais pas pour une application complète. MVC concerne principalement la couche d'interface utilisateur/interaction d'une application. Vous aurez toujours besoin d'une couche de logique métier, peut-être d'une couche de service et d'une couche d'accès aux données. C'est-à-dire, si vous êtes dans l'approche n-tier.
Pourquoi l'un d'eux doit-il être vrai?
Les deux peuvent être vrais, selon le point de vue.
MVC peut être un motif architectural, s'il constitue la base de l'architecture de l'application.
Il peut également être considéré comme un simple motif, une notion abstraite applicable à toute application.
Design patterns explique comment écrire du code efficacement (en considérant métrique du code ).
Quelques avantages:
Schémas architecturaux dites comment utiliser les ressources efficacement.
Dans MVC, a). Les vues peuvent être créées à l'aide de modèles javascript. Vous pouvez également utiliser le langage HTML b). Les contrôleurs peuvent être écrits .NET Framework et c). Les modèles peuvent être écrits dans Java - un service Java peut être utilisé qui ne renvoie que des données json.
Dans le modèle de conception, un modèle ne peut pas être implémenté dans lequel du code peut être écrit dans plusieurs technologies, telles que la classe AdminUser en Java, la classe Client en C #, la classe Partenaires en Php et un modèle d'usine en Ruby :); hmmm..si facile? :)
Je sais que la réponse a été donnée il y a un certain temps, mais personne n'a encore mentionné le livre qui a rendu MVC célèbre: L'architecture logicielle orientée vers le modèle (POSA), de Buschmann, et al publiée en 1996. Bien que moins lu que le livre Design Patterns par Gamma et al., POSA est l’un des ouvrages fondamentaux utilisés par la communauté des modèles.
Oh, et POSA identifie très clairement MVC en tant que modèle architectural. Mon impression est que MS et Sun ne font qu’être négligés et appellent chaque motif un "motif de conception".
Je pense que les deux sont vrais. Si vous regardez un instanciation particulier de MVC dans un cadre tel que Ruby sur Rails, cette instanciation est davantage un motif de conception. Si vous regardez MVC comme un concept général, c'est plus un motif architectural.
Si vous placez dix architectes logiciels dans une pièce et que vous leur demandez de décrire le modèle Model-View-Controller, vous obtiendrez douze opinions différentes. … Certains des puristes auront inévitablement des scrupules avec ce que j'appelle "MVC". N'hésitez pas à laisser un commentaire enflammé sur le tableau d'affichage au bas de cette page Web. Je serai heureux d’entretenir différentes perspectives sur ce que signifie MVC, mais gardez à l’esprit que cela m’importe.
Josh Smith
Les modèles de conception à l'intérieur du triade de classes Modèle/Vue/Contrôleur (MVC) comprennent, sans toutefois s'y limiter, les éléments suivants:
Observer, découplez les objets de sorte que les modifications apportées à l'un (le modèle) puissent affecter un nombre quelconque d'autres (les vues) sans exiger que l'objet modifié (le modèle) connaisse les détails des autres (les vues).
Composite, ce qui nous permet de traiter un objet de groupe (une vue composite) exactement comme nous traitons un de ses objets individuels (composants de vue).
Strategy, où une vue utilise une instance d'une sous-classe de contrôleur pour mettre en œuvre une stratégie de réponse particulière; pour mettre en œuvre une stratégie différente, remplacez simplement l'instance par un type de contrôleur différent.
Méthode d'usine, spécifiant la classe de contrôleur par défaut pour une vue.
Décorateur, ajout du défilement à une vue.
référence
Eric Gamma, Richard Helm, Ralph Johnson et John Vlissides. Modèles de conception: Eléments d'un logiciel orienté objet réutilisable . Addison-Wesley, Reading, MA, 1994.
MVC a toujours mentionné et introduit comme couche de présentation dans les manuels d'architecture logicielle.
Lisez ces livres:
Architecture des solutions Microsoft.NET pour l'entreprise (presse Microsoft)
Enterpise Solutions Patterns utilisant Microsoft.NET (presse Microsoft)
Patterns of Enterprise Application Architecture (Addison Wesley)
Guide pratique de l'architecture d'entreprise (Prentice Hall)
Et selon Martin Fowler, ce sont des architectures GUI: architectures Martin Fowler-GUI
Cela dépend de la taille de l'application, car il ne concerne que les classes liées à une interface graphique. Dans un petit modèle (principalement une interface graphique), il pourrait être considéré comme un motif architectural, alors que dans un très grand modèle, ce serait simplement un motif de conception que vous appliqueriez à l'interface graphique. code (pourrait être 10% du code des applications).
MVC est un modèle d'architecture. Très clairement énoncé et montré à http://molecularsciences.org/zend/mvc_model_view_controller