2012-02-14 87 views
0

我正在寫一個大的webforms應用程序,我使用MVP模式。該應用程序是一個貸款申請,用戶需要回答很多問題。我的問題是,在一頁上可能會有大約15-20個問題,他們的可視性取決於以前的答案。MVP設計困境

因此,每次用戶回答問題「A」時,View可能會在提交者中調用SetVisabilityB()來處理是否顯示或隱藏問題「B」。到目前爲止這麼好,但是問題答案「B」顯示/隱藏了問題「C」,並且當用戶在問題「A」上改變他/她的意見時,視圖必須同時調用SetVisabilityB()和SetVisabilityC()。 。我覺得這有點麻煩,因爲我現在有一些地方需要針對一個問題調用5-6種不同的SetVisability方法。

我應該使用「全局」SetVisability方法來更新所有問題的可見性對於每個答案還是有更好的方法來解決這個問題?

回答

1

我的方法的主要問題是您的視圖包含何時顯示和隱藏問題的業務邏輯。這個觀點應該儘可能愚蠢,它應該是你的主持人做出這些決定。

我會看到信號告訴主持人問題已被回答並通過問題編號。主講人可以根據需要隱藏或顯示問題。這可以採用case語句的形式,或者如果事情變得非常複雜,那麼你可以切換到使用狀態機。