Frage

ging ich zu einer .NET User Group Meeting heute Abend, und ein Teil davon drehte sich um die Model-View-Ansicht Modellmuster, und es hat mich, wenn diese qualifiziert als Muster fragen.
Das Problem, das ich habe ist, dass M-V-VM extrem Technologie spezifisch ist. Wenn Sie WPF und dessen Bindungsmechanismus nicht, sehe ich nicht, wie Sie dieses Muster verwenden könnte.
Im Gegensatz dazu sind die meisten „klassischen“ Muster weitgehend Technologie agnostisch. Die größte Annahme sie machen, ist, dass die verwendete Sprache ist objektorientiert und unterstützt typischerweise Vererbung. Darüber hinaus sind klassische Muster meist über ein allgemeines Design-Problem erklärt und schlagen einen Ansatz, es zu lösen - aber mehr Implementierungen oder Variationen sind möglich
. Meine Frage ist dann, wo sehen Sie die Grenze ziehen zwischen dem, was ein Entwurfsmuster und was ist eine Empfehlung, wie man einen ganz bestimmten Rahmen benutzen? Wenn Sie wissen, wie es zu implementieren und welche Sprache und Technologie müssen Sie dies tun können, ist es immer noch ein Muster?

War es hilfreich?

Lösung

Kann die zugrunde liegenden Konzepte, die notwendig für den „Ansatz“ zur Arbeit auf einer anderen Plattform neu implementiert werden, ohne dass irgendwelche Patente zu verletzen, geistiges Eigentum, oder obszöne Mengen an Arbeit? Wenn ja, würde ich sagen, dass wir es auf jeden Fall noch ein Design-Muster im Sinne nennen Sie bekommen an - nur eine neuen, die nicht einfach ist, weit zu tun noch . (Obwohl auch plattformspezifische Ansätze können noch Entwurfsmuster für die kleinere Gemeinde sein, die sie verwenden können).

Sie halten auch daran, dass MVVM ist nur eine spezifische Implementierung der Präsentationsmodell Muster von Martin Fowler präsentiert, die sicher ist‚klassisch‘, wie Sie sagen, und plattformunabhängig.

„Nichts Neues unter der Sonne“, wie sie sagen, nur unterschiedliche Anordnungen der gleichen Ideen. Prinzipien sind verfeinert die ganze Zeit, selten neue erfunden.

Andere Tipps

Muster sind keine Insel in einigem Meer von anderen Dingen. Es ist nicht schwarz und weiß, dass etwas ein Muster ist oder nicht; alle Muster auf einer Skala werden können und verschiedene Grauschattierungen zwischen generischen und domänenspezifischen, zwischen Prozess und Code und so ziemlich zwei beliebig andere Torpfosten Sie passieren holen gelegt werden.

Wenn sie ein Rezept, das es wert ist oder die Wiederverwendung in noch leicht verschiedene Umstände, es ist ein Muster.

Ja, Design Patterns ist oft abhängig von der Programmiersprache und Technologie im Einsatz: zum Beispiel des Umgang DPs mit explizitem Ressourcenbesitz Spiel schlecht mit Garbage Collection Sprachen, eine Arbeit um die Grenzen des Kompilierung-Spiels schlecht mit dynamischer Eingabe Sprachen, und so weiter -. das ist normal, völlig in Ordnung, im wesentlichen unvermeidlich

„Eine Empfehlung“ unterscheidet sich von „Designmuster“ nicht durch Technologie Kontext, sondern durch die Breite und vor allem Tiefe: eine richtige DP identifiziert zwei oder mehr unabhängig voneinander entwickelt Verwendungen von ähnlichen Ansätzen vertieft, tiefer zu sehen, was gemeinsam „zwingt“ sie in einem schönen, aber schwergewichtigen Meta-Format zu tun waren mit, und Harfen von dort auf. Im Gegensatz dazu ist ein recommdendation viel weniger formal, tief und breit!

DPs sind nie erfunden , sie sind entdeckt von vorhandenen Code grübeln über (zwei oder mehr unabhängig voneinander entwickelt Vorkommen), die sich mit ähnlichen Situationen, die Gemeinsamkeiten als „Kräfte zu identifizieren "die Lösungen fahren, etc, etc.‚DP‘ist so ein beliebter, eingängiger Begriff, der es mehr FAR weit verbreitet ist, als sollte es -0- gehen zurück zu den Quellen und lesen oder erneut zu lesen, Alexander Timeless Way of Building und seine anderen Werke, wenn Sie Ihren Weg durch das Dickicht von verloren haben DPs buzzwordhood, sie werden Ihnen helfen, den Weg zu finden wieder!

  

Wenn Sie WPF nicht und seine Bindung   Mechanismus, ich sehe nicht, wie Sie konnte   verwenden dieses Muster.

Silverlight und Moonlight auch MVVM unterstützen.

„Sprachen basieren off Paradigmen“ hat jedes Paradigma verschiedene Möglichkeiten, um ein Problem zu lösen. Design-Muster geschehen, gemeinsame Lösungen sein, spielt keine Rolle, ob es sprachspezifische oder nicht.

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