Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net MVP设计困境_.net_Mvp - Fatal编程技术网

.net MVP设计困境

.net MVP设计困境,.net,mvp,.net,Mvp,我正在编写一个大型webforms应用程序,我正在使用MVP模式。该应用程序是一个贷款申请,用户需要回答很多问题。我的问题是,在一个页面上最多可以有15-20个问题,它们的可视性取决于以前的答案 因此,每当用户回答问题“a”时,视图可能会在presenter中调用SetVisabilityB(),以处理是否显示或隐藏问题“B”。到目前为止还不错,但问题“B”中的答案显示/隐藏了问题“C”,当用户改变他/她的对问题“A”的看法时,视图必须调用SetVisabilityB()和SetVisabili

我正在编写一个大型webforms应用程序,我正在使用MVP模式。该应用程序是一个贷款申请,用户需要回答很多问题。我的问题是,在一个页面上最多可以有15-20个问题,它们的可视性取决于以前的答案

因此,每当用户回答问题“a”时,视图可能会在presenter中调用SetVisabilityB(),以处理是否显示或隐藏问题“B”。到目前为止还不错,但问题“B”中的答案显示/隐藏了问题“C”,当用户改变他/她的对问题“A”的看法时,视图必须调用SetVisabilityB()和SetVisabilityC()。。。我觉得这有点混乱,因为我现在有地方需要为一个问题调用5-6种不同的可设置性方法


我应该使用“全局”可设置性方法来更新每个答案的所有问题的可设置性,还是有更好的方法来解决这个问题?

您的方法的主要问题是,您的视图包含何时显示和隐藏问题的业务逻辑。视图应该尽可能地愚蠢,并且应该由您的演示者做出这些决定

我会让视图向演讲者发出一个问题已被回答的信号,并传递问题编号。演示者可以根据需要隐藏或显示问题。这可以采取case语句的形式,或者如果事情变得非常复杂,那么您可以切换到使用状态机