2009-07-26 9 views
1

Ich bin (wie ich sicher bin, dass viele von Ihnen sind) ziemlich vertraut mit Rails MVC Design Pattern sowie Django (und andere) MTV Design Patter. Ich habe mich gefragt, welche anderen Muster andere Frameworks für die Entwicklung von Webanwendungen verwenden. Was sind ihre Stärken/Schwächen?Framework Design Patterns

dank

Antwort

0

Meine Miniatur-MVC-Engine (60 Zeilen) für PHP, , die erfolgreich auf einem eingebetteten Consumer-Gerät von Cisco verwendet wird, basiert auf dem "Template-Methode" -Muster, wobei die Elternklasse die Schritte eines Algorithmus außer dem Kind angibt Klasse ist verantwortlich für die Implementierung einiger dieser Schritte.

Im Falle meiner Engine muss der Entwickler applyRequestToModel implementieren. Nicht nur das Web/MVC-Modul von Spring, sondern auch meine Methode applyModelToView verwendet ein map/hash/assoc-Array und stellt es der Ansicht zur Verfügung, außer dass Spring die beiden Facetten von MVC im Namen ihrer Abstraktion (ModelAndView) zusammenfasst Meine Abstraktion ist geeigneterweise ModelTransferObject (alias $ mto).

Apropos Frühling, in der GoF Referenz in Bezug auf die Template-Methode Muster, die GoF zu „Inversion of Control“ beziehen sich

+0

Dies ist nur MTV implementiert mit der Strategie (aka "Template-Methode") Muster. Also ja, intern verwendet es ein anderes Muster, da jede Software intern mehr als ein Muster verwendet, aber im Großen und Ganzen ist es immer noch nur MTV. – vog

+0

Lesen Sie Ihre GoF, sind die Strategie und Vorlage Methode Muster * nicht * gleich. Verwandte, ja, das gleiche nein. –

-1

MTV für nur ein genauer Name ist, was MVC genannt wird in der Regel. In der Tat, Schienen und Django verwenden das gleiche Muster. Es hat sich über Jahre etabliert und kaum ein Framework macht die Dinge anders, außer vielleicht das Halbobjektmuster. Halb-Objekte haben sich jedoch in der Webwelt nicht etabliert.

Der "echte" MVC ist ein Muster, das sowohl in klassischen GUIs als auch in JavaScript zu finden ist (wenn Sie nur schauen, was im Browser passiert). Es ist einfach nicht im WWW anwendbar, also musste es angepasst werden. Das Ergebnis wird verwirrend häufig auch MVC genannt, während MTV eine genauere Beschreibung ist.

+0

MVC für das Web sollte einfacher sein, gibt es keine Notwendigkeit für ein Hören, der Web-Server funktioniert das und die Anfrage ist das Ereignis. Es besteht kein Bedarf für ein anderes Designmuster. MVC für das Web kocht im Wesentlichen eine konkrete Instanz des Mediatormusters, wobei der Controller zwischen der Ansicht und dem Modell vermittelt. –

+0

Im Gegensatz zu MVC muss die Web-Version GUIs mithilfe von Vorlagen für jede Aktion erstellen. Dies ist in klassischen GUIs nicht notwendig. Daher gibt es zwei wesentliche Unterschiede im Web, und der Begriff "View" und seine Interaktionen mit den anderen Teilen (Modell, Controller) ändert sich dramatisch. Deshalb ist ein neuer Name wie MTV angebracht. – vog

+0

PS .... Ich habe "echte" MVC in Javascript implementiert, und es kommt * nicht * einfach "out of the box", wie Sie andeuten. Wenn Sie Ihren Listener erstellen, registrieren sich Widgets, um über Ereignisse benachrichtigt zu werden. Damit können Sie Ihre Ajax-fähigen Widgets synchron halten. Wenn Sie beispielsweise einen Kommentar hinzufügen, kann Ihr Widget, das die Anzahl der Kommentare anzeigt, zusätzlich aktualisiert werden. –

Verwandte Themen