Der Grund, warum sie im Allgemeinen entkoppelt sind, liegt darin, dass Sie möchten, dass Ihre Ansicht einen Controller verwendet, um an Ihr Modell zu gelangen. Die Architektur sollte es Ihnen jedoch ermöglichen, eine Ansicht durch eine andere zu ersetzen, ohne die Geschäftslogik ändern zu müssen (dh das Objektmodell oder wie diese Objekte abgerufen werden).
Wenn Sie Ihren Controller nicht direkt an die Ansicht binden, ist es später viel einfacher, andere Funktionen wie Import / Export hinzuzufügen, mit denen der Controller / das Modell direkt verwendet werden kann, ohne auf eine Benutzeroberfläche angewiesen zu sein.
Ein weiterer Vorteil, wenn so viel Code wie möglich aus der Benutzeroberfläche entfernt wird, besteht darin, dass Benutzeroberflächen viel schwieriger zu testen sind als die dahinter liegende Business-Schicht. Indem Sie so viel wie möglich von der Ansicht selbst trennen, können Sie viel mehr Komponententests schreiben, um sicherzustellen, dass Ihre Steuerung / Ihr Modell und Ihre Anwendungslogik korrekt sind.
Der Controller verarbeitet die Geschäftslogik, die sich von Zeit zu Zeit ändern kann, und die Ansicht kann je nach Anforderung unverändert bleiben.
Das Umgekehrte gilt auch.
Designer und Entwickler müssen in der Lage sein, unabhängig voneinander an demselben Projekt zu arbeiten.
Ein schöner Beitrag: http://mashable.com/2011/11/12/designer-collaboration-strategies/
Das gesamte System wird wartbarer. Das Lösen von Fehlern wird durch den entkoppelten Ansatz einfacher.
Webstandards mit Front-End-Technologien ändern sich rasant. Stellen Sie sich ein Unternehmen vor, das beschließt, alle Front-End-Technologien auf HTML5, Dart usw. zu migrieren. Eine gekoppelte Ansicht und ein gekoppelter Controller wären ein Albtraum!
quelle
Sie müssen die beiden natürlich nicht trennen. Wenn Ansicht und Steuerung jedoch unabhängig sind, kann jede Benutzeroberfläche verwendet werden. Sie können den Controller beispielsweise über eine Konsole, Sockets, ein Web oder eine Desktop-Oberfläche verwenden. Mit anderen Worten, Sie können die Wiederverwendung von Code erhöhen.
quelle