哪种C#设计模式适合在asp.net中编写自定义工作流程

sol*_*dev 2 c# asp.net workflow design-patterns

试图在intertubes上找到一些例子.我正在考虑国家或战略模式,但如果有人有任何战争故事,他们可以指向我的例子或资源,将不胜感激.

我不/不能使用Windows工作流程.

我的例子是我有一个复杂的向导,它根据用户正在做什么以及用户是谁来改变进程的状态.

例如:

  • 取消
  • 用户要求
  • 经理要求
  • 确认
  • 审阅
  • 管理员收到了
  • 管理员确认
  • 管理员已取消

干杯约翰

Chr*_*s S 6

如何在国家模式(维基百科链接)?

public abstract class State
{
    /// <summary>
    /// Holds the current state we're in.
    /// </summary>
    public State CurrentState
    { 
        get; 
        set; 
    }

    public virtual string Cancelled(State context)
    {
        return "";
    }

    public virtual string RequestedByUser(State context)
    {
        return "";
    }

    public virtual string RequestedByManager(State context)
    {
        return "";
    }
}

public class CancelledState : State
{
    public override string Cancelled(State context)
    {
        context.CurrentState = new SittingState();
        return "Cancelled.";
    }

    public override string RequestedByUser(State context)
    {
        context.CurrentState = new RequestedByUserState();
        return "Requested by User.";
    }

    public override string RequestedByManager(State context)
    {
        return "You can't do this before it's been requested by the User";
    }
}

// (RequestedByUserState and RequestedByManagerState classes have been cut out)
Run Code Online (Sandbox Code Playgroud)

如您所见,该模式确实非常合适.

如果存在安全问题,责任链也可能是相关的.如果维基百科的文章毫无意义,那么这本书就有了很好的例子.另一个是向导的命令模式.它们都不完美,但它们会给你一些好的想法.