2009-05-21 47 views
3

我有一个过程就像一个工作流程,假设它是这样的:哪种设计模式可以做到这一点?

  1. 准备
    • 把你的东西斌
    • 清理桌子

现在我想要做的甚至是用户取消“吃”ev恩我希望他们“清理桌子”同样适用于“准备”和“把你的东西装箱”阶段。

目前在我的实施中,我不得不做几次检查,有时候我最终会调用两次“清理表”和其他一些分支问题,当我添加几个步骤时。

是否有任何明确的设计模式来处理这种流动? (AFAIR有一个我只是不记得它的名字

+0

只是给周围的孩子打......开玩笑! :) – kenny 2009-05-21 10:37:15

回答

9

这是解决与State pattern。如果你测试驱动器的逻辑,它会顺利进行。

+0

这是我正在想的那个。非常灵活的工作流程。干杯。 – 2009-05-21 10:34:04

2

在C#/ .NET中,我们有IDisposable模式。我相信你可以在另一种语言中实现类似的东西,无论它是否有垃圾收集器(尽管实现会稍有不同)。

关于这方面的工作流方面,我只需要遵循WCF中Web服务的设计模式(即BeginCancel方法)。如果你不认为它适合你的情况,Windows Workflow Foundation可能是最好的选择。

+0

实际上IDisposable不是一个坏主意,目前我保留了对象的副本,即使在最后一步之后,但我可能会重构它。 – 2009-05-21 10:30:08

1

状态模式我的firend是什么将使这项工作结束。