2012-02-14 7 views
0

私は大きなwebformsアプリケーションを作成していますが、私はMVPパターンを使用しています。このアプリケーションはローン申請であり、ユーザーは多くの質問に答える必要があります。私の問題は、1ページに約15-20件の質問があり、その視認性は以前の回答に依存しているということです。MVPデザインジレンマ

ユーザが質問「A」に回答するたびに、ビューは質問「B」を表示するか非表示にするかを処理するプレゼンタでSetVisabilityB()を呼び出すことがあります。これまでのところ、「B」の答えは「C」の質問を表示/非表示にし、ユーザーが質問「A」の意見を変更すると、ビューはSetVisabilityB()とSetVisabilityC()の両方を呼び出す必要があります。私は今、私が1つの質問に対して5つの異なるSetVisabilityメソッドを呼び出す必要がある場所を持っているので、ちょっと面倒です。

すべての質問の可視性を更新する "グローバル" SetVisabilityメソッド答えごとに、またはこれを解決する良い方法がありますか?

答えて

1

私の主な問題は、ビューに質問の表示と非表示のビジネスロジックが含まれていることです。ビューはできるだけ愚かでなくてはならず、これらの決定を行うプレゼンターでなければなりません。

質問が回答され、質問番号が渡されたことを私が発表者に通知するようにしました。発表者は、必要に応じて質問を表示または非表示にすることができます。これはcaseステートメントの形をとることもできますし、状況が愚かに複雑になる場合は、ステートマシンの使用に切り替えることもできます。