1

MVC と MVP および同様のパターンでは、可能な限り愚かな (ロジックがほとんど含まれていない) 「受動的なビュー」のアプローチがしばしばあります。これにより、単体テストが容易になり、ビューとモデルがより明確に分離されます。

これらのパターンには非常にさまざまな特徴があり、特に MVP の理解は記事ごとに異なるようです。したがって、私の質問は「このパターンを正しく実装するにはどうすればよいか」ではありません。

ビューとモデルの分離を改善し、アプリケーションのテスト容易性を向上させたいと考えています。したがって、私は受動的な見方をしたいと思います。しかし、私の質問は、明らかにビューのみに関連するロジックをどこに配置しますか? スクロールバーが移動したときにテキストビューアがテキストをスクロールするように。これのロジックをプレゼンターに入れますか? テキストビューアにいくつかの拡張機能があるとしましょう。テキストパッセージにマーキングを設定するようなものです。このロジックは、Presenter に入れるのが明らかに理にかなっています。ただし、ビューのすべての「直接的な」ロジック (テキストのスクロールなど) と混合すると、Presenter が非常に大きくなる可能性があり、これも実際には優れた設計ではありません。

だから私の質問は、パッシブビューのディスプレイ関連のロジックをどこに配置し、プレゼンターにどの機能を混在させるかです。

ありがとう!

4

1 に答える 1

0

ユーザーがスクロールするときにモデルからより多くのデータを取得する必要がある場合は、プレゼンターにスクロールバー ロジックを配置します。そうでない場合でも、ビューはプレゼンターに通知する必要があります。

GUI API 自体がスクロールを処理する場合があります。その場合は、プレゼンター内でスタブを通知するだけです (何もしません)。ビューは、プレゼンターにとって何が重要かを認識していません。

プレゼンターは単一のモノリシック クラスである必要はありません。できれば、さまざまな責任のためにさまざまなオブジェクトを集約することをお勧めします。これは、現在テストしていないすべてのオブジェクトをモックアウトできる、テストの観点からは実際に優れています。

于 2010-04-19T16:33:33.943 に答える