關於複雜任務與異常處理的設計模式探討!

slant發表於2004-06-04
各位大俠目前我在專案中遇到了這樣一個問題,
現在把我的想法提出來探討一下:

[專案情況]
有一類複雜的任務是由A,B,C,D,E...不同子任務組成的。
它們之間具有關聯性,即執行完了A後才能執行B
它們之間不具有不可重複性,即執行完了A之後不能再執行A
並且任務有多個組合,也就是說:
任務1:Task1=A+B+C+D
任務2時:Task2=B+C+D+E

還有一個情況就是Task1執行時會產生異常
比如A後產生了異常,系統將會終止Task1,
產生新任務Task1new=B+C,(因為A任務不能重做)

[我的思考]
採用Builder模式,可以解決Task1,Task2不同產品類問題。
但,當執行Task1(A)產生異常時後續任務(B+C)將會成為一個新的產品類。
如此整個系統本來只有兩個產品類現在由於異常會變成數個。
有沒有更好的解決方案呢?

希望得到指點,thx!

相關文章