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

时间:2013-07-24 08:56:13

标签: java design-patterns workflow

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

A - > B - > C - > D - > ë

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

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

这些设计模式中的哪一种有效?

2 个答案:

答案 0 :(得分:10)

您可以查看petri-net实现,基于微积分的框架(如Jacob),虚拟机(如PVM或状态机实现(如SCXML),尽管后者正在等待状态更改然后执行某些操作,因此您需要将控制流更改为数据流。

如果你想自己实现它,你需要确保将控制权交还给某个运行时控制器,而不是仅仅调用下一个节点,因为这会破坏你的堆栈。此运行时控制器还可以将上下文对象注入活动runnables,这样您就可以在活动之间共享状态。请在下面找到粗略的草图:

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);
}

答案 1 :(得分:2)

您可以尝试activiti。您还可以使用eclipse plugin

设计自己的工作流程