Laut Sun und Msdn handelt es sich um ein Entwurfsmuster.
Laut Wikipedia handelt es sich um ein Architekturmuster
Im Vergleich zu Entwurfsmustern sind Architekturmuster größer. (Wikipedia - Architekturmuster )
Oder ist es ein Architekturmuster, das auch ein Designmuster hat?
Welches ist wahr ?
Antworten:
MVC ist eher ein Architekturmuster, jedoch nicht für die vollständige Anwendung. MVC bezieht sich hauptsächlich auf die Benutzeroberfläche / Interaktionsschicht einer Anwendung. Sie benötigen weiterhin eine Geschäftslogikschicht, möglicherweise eine Dienstschicht und eine Datenzugriffsschicht. Das heißt, wenn Sie sich für einen n-Tier-Ansatz interessieren.
quelle
Warum muss einer von ihnen wahr sein?
Beides kann je nach Sichtweise zutreffen.
MVC kann ein Architekturmuster sein, wenn es die Grundlage der Anwendungsarchitektur bildet.
Es kann auch einfach als Entwurfsmuster angesehen werden, ein abstrakter Begriff, der auf jede Anwendung anwendbar ist.
quelle
Entwurfsmuster geben an, wie Code effektiv geschrieben werden kann (unter Berücksichtigung von Codemetriken ).
Einige Vorteile:
Architekturmuster zeigen , wie Ressourcen effektiv genutzt werden können.
quelle
Ich weiß, dass es vor einiger Zeit beantwortet wurde, aber noch hat niemand das Buch erwähnt, das MVC berühmt gemacht hat: Pattern-Oriented Software Architecture (POSA) von Buschmann et al., Das 1996 veröffentlicht wurde. Obwohl es nicht so häufig gelesen wird wie das Buch Design Patterns , von Gamma et al., ist POSA eines der grundlegenden Bücher, die von der Pattern-Community verwendet werden.
Oh, und POSA identifiziert MVC sehr deutlich als Architekturmuster. Meine Vermutung ist, dass MS und Sun nur schlampig sind und jedes Muster als "Designmuster" bezeichnen.
quelle
Ich denke beide sind wahr. Wenn Sie sich eine bestimmte Instanziierung von MVC in einem Framework wie Ruby on Rails ansehen, ist diese Instanziierung eher ein Entwurfsmuster. Wenn Sie MVC als allgemeines Konzept betrachten , handelt es sich eher um ein Architekturmuster.
quelle
Die Entwurfsmuster innerhalb der MVC-Triade (Model / View / Controller) umfassen und sind möglicherweise nicht beschränkt auf:
Beobachter : Entkoppeln von Objekten, sodass Änderungen an einem (dem Modell) eine beliebige Anzahl anderer (die Ansichten) beeinflussen können, ohne dass das geänderte Objekt (das Modell) Details der anderen (der Ansichten) kennen muss.
Zusammengesetzt , mit dem wir ein Gruppenobjekt (eine zusammengesetzte Ansicht) genauso behandeln können wie eines seiner einzelnen Objekte (Ansichtskomponenten).
Strategie , bei der eine Ansicht eine Instanz einer Controller-Unterklasse verwendet, um eine bestimmte Antwortstrategie zu implementieren; Um eine andere Strategie zu implementieren, ersetzen Sie einfach die Instanz durch eine andere Art von Controller.
Factory-Methode , die die Standard-Controller-Klasse für eine Ansicht angibt.
Dekorateur , der einer Ansicht einen Bildlauf hinzufügt.
Referenz
Eric Gamma, Richard Helm, Ralph Johnson und John Vlissides. Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software . Addison-Wesley, Reading, MA, 1994.
quelle
MVC wurde in Software-Architekturbüchern immer als / in der Präsentationsschicht erwähnt und eingeführt.
Lesen Sie diese Bücher:
Architektur von Microsoft.NET-Lösungen für Unternehmen (Microsoft Press)
Professionelle ASP.NET-Entwurfsmuster (Wrox)
Enterpise Solutions-Muster mit Microsoft.NET (Microsoft Press)
Muster der Unternehmensanwendungsarchitektur (Addison Wesley)
Ein praktischer Leitfaden zur Unternehmensarchitektur (Prentice Hall)
quelle
Wenn Sie zehn Softwarearchitekten in einen Raum stellen und sie das Model-View-Controller-Muster besprechen lassen, erhalten Sie zwölf verschiedene Meinungen. … Einige der Puristen da draußen werden unweigerlich Bedenken gegen das haben, was ich als „MVC“ bezeichne. Fühlen Sie sich frei, einen flammenden Kommentar im Message Board am Ende dieser Webseite zu hinterlassen. Ich werde gerne verschiedene Perspektiven auf die Bedeutung von MVC unterhalten, aber denke daran, dass es mir egal ist.
Josh Smith
quelle
Und laut Martin Fowler handelt es sich um GUI-Architekturen: Martin Fowler-GUI-Architekturen
Dies hängt von der Größe der Anwendung ab, da es nur GUI-bezogene Klassen betrifft. In einer kleinen (meistens GUI) kann es als Architekturmuster betrachtet werden, während es in einer großen nur ein Entwurfsmuster ist, das Sie auf die GUI anwenden Code (könnte 10% des Apps-Codes sein).
quelle
MVC ist ein Architekturmuster. Sehr klar angegeben und gezeigt unter http://molecularsciences.org/zend/mvc_model_view_controller
quelle