如何在复杂向导中为下一步/上一步构建代码



我有一个 45 步向导 UI(复杂域 - 保险)。它是在 ASP.NET MVC 3 中实现的。问题是我的操作方法有很多代码来确定下一步是什么,具体取决于用户、已经收集的数据、天气预报......更糟糕的是,对后退按钮功能重复了类似的代码。有没有一种模式可以用来抽象这个逻辑?我希望有一种方法来定义前进步骤并自动获得后退步骤。

我的建议是创建一个接口,如下所示:

public interface IStepDecisionMaker
{
     StepInfo DefineNextPreviousStep(object data);
}
public class StepInfo {
    public int NextStepId {get;set;}
    public int PreviousStepId {get;set;}
    public object Values {get;set;}
}

您现在可以在数据库或XML中添加一个表,其中设置所有可用步骤,并为每个步骤分配一个实现接口IStepDecisionMaker的具体类

在您的操作中,您可以收集该步骤的数据,并使用 IoC 系统或反射 CreateInstance,您可以创建具体类的实例,调用 DefineNextPreviousStep 传递您需要检查的数据,该方法可以返回一个类,该类将告诉您下一步或上一步是什么

通过这种方式,您可以实现几件事

  1. 您的操作将只有几行代码
  2. 逻辑不是大量的如果那么,而是在每个类中
  3. 您可以直接在特定步骤的具体类中更改某些条件,而无需触摸代码的其他部分

恕我直言

相关内容

  • 没有找到相关文章

最新更新