我有一个类似于工作流的流程,可以这样假设:
- 准备
- 吃饭
- 把你的东西放到垃圾桶里
- 清理桌子
现在我想做的是,即使用户取消了“吃饭”事件,我也希望他们能够完成“清理桌子”,对于“准备”和“把你的东西放到垃圾桶里”的阶段也是如此。
目前,在我的实现中,我不得不进行多次检查,有时我最终会调用“清理桌子”两次,当我添加了更多步骤时,还会出现其他分支问题。
是否有任何明确定义的设计模式来处理这种类型的流程?(我记得有一个,但我无法回忆起它的名称。)
我有一个类似于工作流的流程,可以这样假设:
现在我想做的是,即使用户取消了“吃饭”事件,我也希望他们能够完成“清理桌子”,对于“准备”和“把你的东西放到垃圾桶里”的阶段也是如此。
目前,在我的实现中,我不得不进行多次检查,有时我最终会调用“清理桌子”两次,当我添加了更多步骤时,还会出现其他分支问题。
是否有任何明确定义的设计模式来处理这种类型的流程?(我记得有一个,但我无法回忆起它的名称。)
使用状态模式(State pattern)可以解决这个问题。如果你测试驱动这个逻辑,它会非常顺畅。
IDisposable
模式。我相信您可以在另一种语言中实现类似的东西,无论它是否具有垃圾回收器(尽管实现会略有不同)。Begin
和Cancel
方法)。如果您认为这对您的情况来说并不过度,那么Windows Workflow Foundation可能是最好的选择。