当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《哪种C#设计模式适合在asp.net中编写自定义工作流程》经验,为你挑选了1个好方法。

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

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

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

例如:

取消

用户要求

经理要求

确认

审阅

管理员收到了

管理员确认

管理员已取消

干杯约翰



1> Chris S..:

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

public abstract class State
{
    /// 
    /// Holds the current state we're in.
    /// 
    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)

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

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

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有