我正在实现向导风格的用户界面。当用户浏览向导时,单击下一步,具体取决于他们在每个屏幕上选择的选项,用户将必须通过一组向导屏幕。

这是在ASP.NET MVC中构建的。我想知道哪种设计模式最适合实现向导中步骤的逻辑。同样,根据他们做出的选择,他们在向导中有多个路径。

我可以使用链表吗? “Command Design Pattern”?您有什么推荐的吗?

换句话说:您在哪里/如何抽象/封装根据用户在向导的特定步骤中选择的内容来确定向导的下一步是什么的逻辑?

最佳答案



一种方法是对向导类,步骤类和产品类建模。也许是这样的吗?

public class Wizard
{
  public Step forward() {//...}

  public Step backward() {//...}

  public Step current() {//...}

  public Product getProduct() {//...}
}

public class Step
{
  public String name() {//...}

  public void commit(Product product) {//...}

  public void rollback(Product product) {//...}
}

public class Product
{
  //...
}

向导的目的是构建产品(汽车,计算机,度假等)。

在这种情况下,由向导决定下一步-可能基于向导正在构建的产品的状态。在UI的控制下,Wizard的行为就像Builder,它是Director,并告诉Wizard何时以及朝哪个方向进行过渡。由向导决定下一步实际上是什么。可以支持多个分支点,但是该实现将隐藏在Wizard中。

步骤将是具有撤消/重做功能的Command Pattern的实例。

关于asp.net-mvc - DesignPatterns : Which is most appropriate to use for a wizard style user interface?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/762008/

10-09 08:38