ここに私の考えがあります: MVC を使用する目的は、関心の分離と GUI ロジックのテスト可能性です。ビューはさまざまなモデルで機能し、モデルはさまざまなビューで機能できる必要があります。
コントローラークラスは、モック/テストの理由からインターフェイスを実装する必要があり、ビューはこのインターフェイスを介してコントローラーメソッドを呼び出す必要があると思います。しかしそうすると、ビュー要素(テキストボックス、グリッドなど)をコントローラーで処理するのが難しくなります。したがって、これらの要素は、何らかの方法でコントローラーによって認識される必要があります。
1. インターフェイスを通じてこれらの GUI 要素を公開していますか? コントローラーがGUI要素を直接処理できるように、コントローラークラスを部分クラスとして定義しますか(インターフェイスはどうなりますか)?この問題を解決するために何をしますか?
2. 基本的に、コントローラーは複数のインターフェースを実装する必要がありますか? 1つはビュー用、もう1つはモデルレイヤー用で、ビュー/モデルがコントローラーを介して異なるモデル/ビューで動作できるようにしますか?
3. モデル層もモック/テスト用のインターフェースを実装する必要がありますか?
テスト、疎結合、SoC の目的を最適に達成するにはどうすればよいでしょうか? あなたの経験/考えを共有してください。