Ist Datenbindung grundsätzlich nicht mit MVC kompatibel?

8

Datenbindung stellt eine direkte Kopplung zwischen der Ansicht und dem Modell her, wodurch der Controller umgangen wird. Im Grunde bricht dies mit dem Architekturmuster des Model-View Controllers. Habe ich recht, wenn ich das denke? Macht dies Datenbindung zu einer "schlechten Sache"?

Bearbeiten: Zum Beispiel behauptet eckig , ein MVC-Framework zu sein, aber eines seiner Hauptmerkmale sind Daten verbindlich.

    
Zef Hemel 21.03.2011, 09:02
quelle

3 Antworten

5

Meiner Meinung nach kann Data Binding eine gültige Implementierung des MVC Patterns sein, da der Datenbindungsmechanismus selbst in diesem Fall als Controller fungiert.

Zum Beispiel scheint in dem erwähnten Winkel die $ watch-Funktion eine Abkürzung zu sein, um Funktionen zu implementieren, die typische Controller-Verantwortlichkeiten und -Funktionen im MVC-Stil sind.

Meiner Meinung nach ist die Datenbindung also ein Evolutionsschritt, der Best Practices implementiert, die durch die Implementierung von klassischen MVC-Controllern erlernt wurden.

AKTUALISIEREN

Aber im ursprünglichen Muster würde ich die Datenbindung eher wie MVP oder Passivansicht charakterisieren.

Aber die Unterschiede sind meiner Meinung nach nicht so scharf, da es immer auch auf Ihre UI-Technologie ankommt.

    
Johannes Wachter 21.03.2011 09:12
quelle
5

Nicht unbedingt, da Sie Ihre Model-Objekte nicht an die Ansicht binden müssen.
Normalerweise erstellen ich einfache DTOs (oder Präsentationsobjekte), die nur die Daten enthalten, die ich anzeigen möchte, und das zeigt die Ebene "View" an.
In diesem Fall behält der Controller seine Funktion als Übersetzer zwischen Aktionen, die an den DTOs ausgeführt werden, und Aktionen für die zugrunde liegenden Model-Entitäten.

    
J. Ed 21.03.2011 10:43
quelle
0

Wenn Ihre Daten korrekt abstrahiert werden, ist das Verschieben des Inhalts Ihrer Modelle in Ihre Benutzeroberfläche eine wiederkehrende Aufgabe, die normalerweise zu irgendwelchen "Helfern" führt.

Nehmen wir an, wir schieben eine Liste von Elementen in eine Combobox. Dies ist nicht unbedingt Teil des Controllers, da Sie diese Funktionalität möglicherweise teilen möchten. Auch der Wert des Steuerelements (um es einfach zu halten, sagen wir den Text eines Textfelds) ist wiederholend und bidirektional.

Auch hier wiederholst du dich selbst (denke an DRY) und mach dasselbe über und wieder.

Genau hier kommt Databinding ins Spiel. Dies kann die Aufgaben übernehmen, die bei einfachen Kontrollen ohnehin identisch sind (Checkbox, Textfeld, Combobox). Für die Gittersteuerung und dergleichen kann es spezifisch sein.

Schauen Sie sich mvc & amp; Datenbindung: Was ist der beste Ansatz? . Hier diskutiere ich, was das Optimum bei der Verwendung von Datenbindung in Kombination mit MVC sein könnte.

    
Holger Leichsenring 23.05.2016 09:22
quelle