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

看见

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

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Java工作流程上使用哪种设计模式

来自分类Dev

在Java工作流程上使用哪种设计模式

来自分类Dev

奇异工作流程设计

来自分类Dev

Nuxeo工作流程类型

来自分类Dev

顺序工作流程设计器

来自分类Dev

针对不同类型实体的可扩展审批工作流程的系统设计

来自分类Dev

业务运营/工作流设计模式

来自分类Dev

网站设计工作流程-首先使用HTML还是CSS?

来自分类Dev

从设计到开发:是否有通用的EmberJS工作流程?

来自分类Dev

从设计到开发:是否有通用的EmberJS工作流程?

来自分类Dev

JSON工作流程设计器和引擎

来自分类Dev

在Powershell工作流程中使用AzureStorageContext

来自分类Dev

使用Hue的MapReduce oozie工作流程

来自分类Dev

在开发工作流程中使用docker

来自分类Dev

使用Spring实施工作流程

来自分类Dev

使用scssphp的工作流程是什么?

来自分类Dev

使用熊猫的“大数据”工作流程

来自分类Dev

使用“轨道中的工作流程宝石”

来自分类Dev

在开发工作流程中使用docker

来自分类Dev

使用Informatica工作流程发送邮件

来自分类Dev

流浪的工作流程

来自分类Dev

AsyncTask工作流程

来自分类Dev

并行工作流程

来自分类Dev

WebRTC工作流程

来自分类Dev

如何使用gitflow工作流程进行分支工作?

来自分类Dev

无法使用Java操作运行Oozie工作流程

来自分类Dev

使用多分支工作流程清理构建

来自分类Dev

使用angularJs和laravel 4的简单工作流程

来自分类Dev

使用ClearCase和Git走向理想的工作流程