Dies mag zunächst wie eine Verletzung der DRY-Regel aussehen, aber ich würde argumentieren, dass "ähnlicher und sogar identischer Code" nicht unbedingt "Wiederholung" ist, wenn er etwas anderes tut oder sich unabhängig ändern kann. Und im Fall von Ansichtsmodellen definiert der Code, was der "Kunde" sieht, nicht unbedingt die Entitäten und Operationen, über die das Unternehmen spricht. Daher werden dem Client oder der Benutzeroberfläche häufig Modelle angezeigt, die "zufällig identisch" sind. Sie können entweder die Geschäftsregeln und -bedingungen oder die Endbenutzerterminologie unabhängig voneinander ändern.
Also, ich würde die Frage an Sie zurückdrehen. Wenn sich die Domäne ändert, können die Clients der Version 1 die alten Schnittstellen weiterhin verwenden? Werden Sie jemals Begriffe oder Vorgänge in der Benutzeroberfläche anzeigen, die nicht zu den "Kerngeschäftsregeln" gehören? Und umgekehrt?
Diese Art von Fragen im Hinterkopf, wenn die "Funktion" Ihrer Ansicht ausschließlich darin besteht, das zugrunde liegende Domänenmodell zu offenbaren, ja, dies scheint die DRY-Regel zu verletzen.
Bedenken Sie auch, dass das Anzeigen einer Ansicht, die sich bei Modelländerungen natürlicher ändert, auch in einigen Sprachen mit Elementattributen und Reflexion möglich ist. (Oder mit weniger Wiederholungen durch andere Meisterleistungen der Klugheit ... Aber "Klugheit" kann die Wiederholung, die sie Ihnen erspart, oft nicht rechtfertigen.)
Model
normalerweise nicht an die weitergereichtView
? Warum genau müssen Sie die FelderModel
in der neu erstellenView
? Wenn die Trennung von Anliegen ein Ziel von istMVC
, unter welchen Umständen würde man das gleiche mitModel
und tun wollenView
? WennViewModel
beides ist, warum nicht durch Erweitern / Komponieren von beidemModel
undView
?