回答:
それらが一般に分離されている理由は、モデルに到達するためにビューでコントローラーを使用する必要があるためです。ただし、このアーキテクチャでは、ビジネスロジック(オブジェクトモデルやオブジェクトの取得方法)を変更することなく、ビューを別のビューに置き換えることができます。
コントローラーをビューに直接関連付けないことで、後で、UIに依存せずにコントローラー/モデルを直接使用できるインポート/エクスポートなどの他の機能を追加する方がはるかに簡単になります。
UIからできるだけ多くのコードをプッシュするもう1つの利点は、UIの背後にあるビジネスレイヤーよりもUIの単体テストがはるかに難しいためです。ビュー自体からできる限り分離することで、より多くの単体テストを記述して、コントローラー/モデルとアプリケーションロジックが正しいことを確認できます。
コントローラーは、時々変更されるビジネスロジックを処理し、要件に応じてビューは変更されないままになる場合があります。
上記の逆も当てはまります。
デザイナーと開発者は、同じプロジェクトで独立して作業できる必要があります。
いい投稿:http : //mashable.com/2011/11/12/designer-collaboration-strategies/
システム全体がより保守しやすくなります。分離されたアプローチにより、バグの解決が容易になります。
フロントエンド技術を備えたウェブ標準は急速に変化しています。すべてのフロントエンド技術をHTML5やDartなどに移行することを決定している企業を想像してみてください。ビューとコントローラーを組み合わせると、悪夢になります。
もちろん、2つを分離する必要はありません。ただし、ビューとコントローラーが独立している場合は、任意のユーザーインターフェイスを使用できます。たとえば、コンソール、ソケット、Web、またはデスクトップインターフェイスを介してコントローラを使用できます。つまり、コードの再利用を増やすことができます。