我有一个过程就像一个工作流程,假设它是这样的:哪种设计模式可以做到这一点?
- 准备
- 吃
- 把你的东西斌
- 清理桌子
现在我想要做的甚至是用户取消“吃”ev恩我希望他们“清理桌子”同样适用于“准备”和“把你的东西装箱”阶段。
目前在我的实施中,我不得不做几次检查,有时候我最终会调用两次“清理表”和其他一些分支问题,当我添加几个步骤时。
是否有任何明确的设计模式来处理这种流动? (AFAIR有一个我只是不记得它的名字)
我有一个过程就像一个工作流程,假设它是这样的:哪种设计模式可以做到这一点?
现在我想要做的甚至是用户取消“吃”ev恩我希望他们“清理桌子”同样适用于“准备”和“把你的东西装箱”阶段。
目前在我的实施中,我不得不做几次检查,有时候我最终会调用两次“清理表”和其他一些分支问题,当我添加几个步骤时。
是否有任何明确的设计模式来处理这种流动? (AFAIR有一个我只是不记得它的名字)
在C#/ .NET中,我们有IDisposable
模式。我相信你可以在另一种语言中实现类似的东西,无论它是否有垃圾收集器(尽管实现会稍有不同)。
关于这方面的工作流方面,我只需要遵循WCF中Web服务的设计模式(即Begin
和Cancel
方法)。如果你不认为它适合你的情况,Windows Workflow Foundation可能是最好的选择。
实际上IDisposable不是一个坏主意,目前我保留了对象的副本,即使在最后一步之后,但我可能会重构它。 – 2009-05-21 10:30:08
如果您使用的是C++:Resource Acquisition is Initialization。
这个问题通常在语言中一直没有得到很好的解决没有某种确定性结束的(C#,Java的等)
状态模式我的firend是什么将使这项工作结束。
只是给周围的孩子打......开玩笑! :) – kenny 2009-05-21 10:37:15