试图在intertubes上找到一些例子.我正在考虑国家或战略模式,但如果有人有任何战争故事,他们可以指向我的例子或资源,将不胜感激.
我不/不能使用Windows工作流程.
我的例子是我有一个复杂的向导,它根据用户正在做什么以及用户是谁来改变进程的状态.
例如:
取消
用户要求
经理要求
确认
审阅
管理员收到了
管理员确认
管理员已取消
干杯约翰
如何在国家模式(维基百科链接)?
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)
如您所见,该模式确实非常合适.
如果存在安全问题,责任链也可能是相关的.如果维基百科的文章毫无意义,那么这本书就有了很好的例子.另一个是向导的命令模式.它们都不完美,但它们会给你一些好的想法.