2009-05-21 57 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是什麼將使這項工作結束。