Frage

Ich fand Was sind mvp und mvc und was ist der Unterschied aber es hat nicht wirklich diese Frage beantworten.

Ich habe vor kurzem angefangen mit MVC, weil es Teil des Frameworks ist, dass ich mich und meine Arbeit-partner zu verwenden.Wir wählten es, weil es schaute einfach und getrennt Prozess von display, es sind Vorteile außerdem, dass wir nicht wissen über und könnten verpassen?

Pros

  1. Display und Verarbeitung sind getrennt


Nachteile

  1. Keine so weit
War es hilfreich?

Lösung

MVC ist die Trennung von model, view-und controller — nichts mehr, nichts weniger.Es ist einfach ein Paradigma;ein ideal, das sollten Sie im Hinterkopf beim entwerfen von Klassen.Vermeiden Sie das mischen von code aus den drei Kategorien, in einer Klasse.

Zum Beispiel, während ein raster Tabelle Ansicht sollte natürlich vorhanden Daten einmal gezeigt, es sollte nicht in code auf, wo die zum abrufen der Daten aus, oder was seine native Struktur (die Modell) ist.Ebenfalls, während es eine Funktion, um die Summe einer Spalte werden die tatsächlichen Summen soll geschehen in den controller.

Eine 'Datei speichern' dialog (Ansicht) letztlich geht der Pfad nach der Ernte durch den Benutzer, auf der controller, die fragt dann die Modell für die Daten, und die tatsächliche ersparnis.

Diese Trennung von Aufgaben ermöglicht Flexibilität auf der Straße.Zum Beispiel, weil der Blick nicht über das zugrunde liegende Modell, Unterstützung mehrere Datei Formate ist einfacher:fügen Sie einfach ein Modell Unterklasse für jede.

Andere Tipps

Die Trennung von Bedenken ist die biggy.

Können Sie necken diese Komponenten auseinander macht den code leichter zu re-verwenden Sie und selbständig testen.Wenn Sie nicht wirklich wissen, was MVC ist, vorsichtig sein, zu versuchen, Menschen zu verstehen, die Meinungen da gibt es noch einigen Streit darüber, was das "Modell" ist (ob es die business-Objekte/Datensätze/DataTables oder wenn es ist der zugrunde liegende service-Ebene).

Ich habe gesehen, alle Arten von Implementierungen, die nennen sich die MVC, aber nicht genau, wie die Kommentare in Jeff Artikel zeigen MVC ist ein strittiger Punkt, dass ich glaube nicht, dass Entwickler immer voll Zustimmen.

Eine gute Runde bis alle die verschiedenen MVC-Typen verfügbar ist hier.

Jeff hat eine post darüber, ansonsten fand ich einige nützliche Dokumente, die auf der Apple-website, in Kakao-tutorials (diese ein für Beispiel).

Ich denke, ein weiterer Vorteil bei der Verwendung des MVC-Musters ist, dass es öffnet die Türen zu anderen Ansätze um das design, wie MVP/Presenter erste und die vielen anderen MV* - Muster.

Ohne diese grundlegende Trennung das design "Komponenten" die übernahme dieser Techniken wäre viel schwieriger.

Ich denke, es hilft, um Ihren code zu noch mehr interface-basiertes..Nicht nur innerhalb der einzelnen Projekt, aber man kann fast beginnen sich zu entwickeln common "Ansichten", was bedeutet, Sie können die Vorlage viel mehr von der "grunt" - code in Ihren Anwendungen einsetzen.Für Beispiel, eine sehr abstrakte "data view", die einfach ein paar Daten auf und wirft es zu einer gemeinsamen raster layout.

Edit:

Wenn ich mich richtig erinnere, dies ist eine ziemlich gute podcast auf MV* - Muster (hörte es eine Weile her ist!)

Ein con ich denken kann, ist, wenn Sie wirklich brauchen schnellen Zugriff auf die Daten in Ihrer Ansicht (z.B. Spiel-animation-Daten wie Knochen-Positionen.) Es ist sehr ineffizient zu halten eine Schicht von Trennung in diesem Fall.

Ansonsten, für die meisten anderen Anwendungen, die mehr von Daten getrieben als Grafik angetrieben, es scheint wie ein logischer Weg zu fahren, eine UI.

Wenn Sie Folgen Sie den stackoverflow-podcasts, die Sie hören können, Jeff (und Geoff?) besprechen Sie Ihre Größe. http://blog.stackoverflow.com/2008/08/podcast-17/.Aber denken Sie daran, dass die Verwendung dieser verschiedenen Ebenen bedeutet, die Dinge sind einfacher in der Zukunft--und härter, jetzt.Und Schichten können machen Sie die Dinge langsamer an.Und Sie kann auch nicht brauchen.Aber lass nicht zu, dass Sie aufhören zu lernen, was es ist-beim Bau große, robuste, langlebige Systeme, es ist von unschätzbarem Wert.

Es trennt sich Model und View gesteuert durch einen Controller, Soweit Modell betrifft, Ihre Modelle zu Folgen, OO-Architektur, zukünftige Erweiterungen und andere Wartung der Codebasis sollte das sehr einfach sein und die code-Basis sollten wiederverwendbar sein.

Gleiche Modell kann nicht.der Blick auf e.g) gleiche info kann gezeigt werden, wie verschiedene grafische Ansichten.Dieselbe Ansicht kann haben andere keine.Modelle e.g) verschiedene detaillierter dargestellt werden können als ein einzelnes Diagramm zu sagen, wie Sie ein Balkendiagramm.Dies ist, was die Wiederverwendbarkeit der sowohl Ansicht und Modell.

Verbesserungen in Aussicht und sonstige Unterstützung von neuen Technologien für den Aufbau der Blick leicht implementiert werden kann.

Kerl, der arbeiten auf Sicht Dosis nicht brauchen, um wissen über das zugrunde liegende Modell code-Basis und seiner Architektur, Umgekehrt für das Modell.

MVC ist nur ein Allgemeines Entwurfsmuster, das im Rahmen des lean-web-app-Entwicklung macht es einfach für die Entwickler, die HTML-markup in einer app-Präsentation-Schicht (die Ansicht) getrennt von den Methoden, die empfangen und verarbeiten von client-Anfragen (die Controller) und die Daten, die Darstellungen, die zurückgegeben werden innerhalb der view (die Modelle).Es geht um die Trennung von Bedenken,, dass ist, zu halten-code dient eine funktionelle Zweck (z.B.Verarbeitung der client-Anfragen) speichern vom code, dient einem ganz anderen funktionalen Zweck (z.B.Darstellung von Daten).

Es ist das gleiche Prinzip, warum jeder, der mehr ausgegeben als 5 min versucht, eine website zu bauen kann zu schätzen wissen, die brauchen, um Ihr HTML-markup, JavaScript und CSS in separate files:Wenn Sie nur werfen alle Ihren code in einer einzigen Datei, die Sie bis Ende mit spaghetti-das ist praktisch un-editierbare später auf.

Seit Ihr gefragt nach möglichen "Nachteile": Ich bin keine Autorität auf software-Architektur, design, aber basierend auf meiner Erfahrung in der Entwicklung in MVC, ich denke, es ist auch wichtig zu erwähnen, dass nach einem strengen, no-frills-MVC-design-Muster ist sehr hilfreich, um 1) leichte web-apps, oder 2) wie die UI-Schicht von einem größeren Unternehmen app.Ich bin überrascht, dass diese Spezifikation ist nicht in aller Munde, weil MVC enthält keine expliziten Definitionen für Ihre business-Logik, Domäne, Modelle, oder wirklich alles, was in der data access layer der app.Als ich begann zu entwickeln, in ASP.NET MVC (d.h.bevor ich wusste, dass andere software-Architekturen noch gar nicht gab), würde ich am Ende mit sehr aufgebläht Controller oder sogar Modelle, die voll von der business-Logik, war ich auf der Arbeit auf enterprise-Anwendungen, wäre es schwierig für andere Entwickler, die nicht vertraut waren, mit meinem code zu ändern (D. H.mehr spaghetti).

Einer der großen Vorteile von MVC die hier nicht erwähnt ist, dass MVC bietet RESTful-urls, die es ermöglicht, SEO.Wenn Sie die Namen Ihrer Controller und Aktionen mit bedacht, es macht es einfacher für die Suchmaschinen Ihre Website finden, wenn Sie nur einen Blick auf Ihre Website-Urls.Zum Beispiel haben Sie ein Auto Verkauf website und eine Seite, die zeigt die verfügbaren Lamborghini Veneno Autos, anstatt www.MyCarSale.com/product/6548 bezugnehmend auf die Seite, die Sie auswählen können www.MyCarSale.com/SportCar/Lamborghini-Veneno url für SEO-Zwecke.

Hier ist eine gute Antwort auf MVC-Vorteile und hier ist ein Artikel so erstellen Sie eine SEO-freundliche Url.

Haupt-Vorteil der MVC-Architektur wird eine Unterscheidung zwischen den Ebenen eines Projektes im Modell,Ansicht und Controller für die Wiederverwendbarkeit von code, einfach, code zu verwalten, und Wartung.Das beste ist, dass die developer sich gut anfühlt, fügen Sie einige code in zwischen das Projekt Wartung.

Hier sehen Sie einige weitere Punkte auf Wichtigsten Vorteile der MVC-Architektur.

![mvc-Architektur][1]

Model–view–controller - (MVC) is a software architectural pattern for implementing user interfaces.Es teilt sich eine bestimmte software-Anwendung, die in drei miteinander verbundene Teile, so trennen interne Repräsentationen von Informationen aus dem Wege, dass Informationen oder anerkannt, von der Benutzer.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top