要使用的工作流设计模式的类型



我有一个按顺序的工作流程

A->B->C->D->E

我需要一个设计模式,允许我在它们之间添加一个状态,而代码更改最少。

http://en.wikipedia.org/wiki/Workflow_patterns

以下哪种设计模式有效?

您可以研究petri网实现、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);
}

您可以尝试activiti。您还可以使用eclipse插件

设计自己的工作流程

最新更新