我有一个按顺序进行的工作流程
A-> B-> C-> D-> E
我需要一种设计模式,该模式允许我在它们之间以最小的代码更改添加状态。
http://en.wikipedia.org/wiki/Workflow_patterns
以下哪种设计模式有效?
您可以研究petri-net实现,像Jacob一样受演算启发的框架,用于PVM之类的进程的虚拟机或诸如SCXML之类的状态机实现,尽管后者正在等待状态更改然后执行某些操作,因此您需要进行一些更改控制流转换为数据流。
如果要自己实现,则需要确保将控制权交还给某个运行时控制器,而不是仅调用下一个节点,因为这会破坏堆栈。该运行时控制器还可以将上下文对象注入到活动可运行对象中,这样您就可以在活动之间共享状态。请在下面找到一个粗略的草图作为伪代码:
interface Activity {
Activity run(SharedContext context);
}
class A implements Activity {
public Activity run(SharedContext context) {
doA(context);
return new B();
}
}
class B implements Activity {
public Activity run(SharedContext context) {
doB(context);
return new C();
}
}
// runtime controller
SharedContext context = new SharedContext();
Activity next = new A();
while (next != null) {
next = next.run(context);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句