关于复杂任务与异常处理的设计模式探讨!
各位大侠目前我在项目中遇到了这样一个问题,
现在把我的想法提出来探讨一下:
[项目情况]
有一类复杂的任务是由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!