我正在编写一个大型的webforms应用程序,并且我正在使用MVP模式。该应用程序是一个贷款申请,用户需要回答许多问题。我的问题是,在一个页面上可以有大约15-20个问题,它们的可视性取决于之前的答案。
因此,每当用户回答问题"A“时,视图可能会在演示者中调用SetVisabilityB()来处理是否显示或隐藏问题"B”。到目前为止还不错,但是问题"B“中的答案显示/隐藏了问题"C",并且当用户改变他/她对问题"A”的看法时,视图必须同时调用SetVisabilityB()和SetVisabilityC()...我发现这有点混乱,因为我现在有一些地方需要为一个问题调用5-6个不同的SetVisability方法。
我应该使用“全局”SetVisability方法来更新每个答案的所有问题的可见性,还是有更好的方法来解决这个问题?
发布于 2012-02-14 17:24:12
我对您的方法的主要问题是,您的视图包含何时显示和隐藏问题的业务逻辑。视图应该尽可能的愚蠢,并且应该是你的演示者做出这些决定。
我的观点是向演示者发出一个问题已经得到回答的信号,并传递问题编号。演示者可以根据需要隐藏或显示问题。这可以采用case语句的形式,或者如果事情变得非常复杂,那么您可以切换到使用状态机。
https://stackoverflow.com/questions/9273730
复制相似问题