当前位置: 首页 > news >正文

【状态机实现】初识——基于状态机实现的流程编排和Activiti、Camunda、Flowable等工作流的区别

一、状态机 VS 工作流

在工作流引擎中,在完成之前的操作时,就会切换到下一个步骤,而状态机需要一个外部事件,这将导致分支到下一个活动。换句话说,状态机是事件驱动的,而工作流引擎不是。

微观上来讲:
状态机管理状态 ,关心 一个东西(比如一个订单) 的各种身份变化。比如,订单从待支付 -> 已支付-> 已发货。

宏观上来讲:
工作流管流程 ,关心 一系列步骤 (比如很多人参与的审批) 如何一步步走完。比如,员工提交报销 -> 经理审批 -> 财务付款。

从生活上来讲:
状态机像是一个灯的开关,它只关心自己当前是 “开” 还是 “关” 状态。你按一下(事件),状态就变一次。
工作流像是做一道菜的食谱,它规定了你必须先洗菜,再切菜,然后炒菜,最后装盘。这些步骤需要按顺序来,可能还需要不同的人(你负责炒,你朋友负责洗)。

怎么选?
如果你的问题是: “这个东西现在是什么状况?下一步能变成什么?” -> 用 状态机。
如果你的问题是: “这件事接下来应该由谁做什么?” -> 用 工作流。

区别:

状态机 (State Machine)工作流 (Workflow)
管什么一个东西的状态变化一系列任务的执行顺序
关心点状态 (State)步骤 (Step/Task)
典型例子订单状态、游戏角色状态审批流程、客服工单处理流程
关系工作流中的某一步,可能就是由一个状态机来负责的。
审批任务实体 - 状态机
请假单实体 - 状态机
宏观业务流程 - 工作流引擎
审批通过
审批被拒绝
驱动工作流前进
驱动工作流前进
处理中
待处理
已同意
已拒绝
已关闭
审批中
草稿
已批准
已拒绝
已备案
创建请假单和审批任务
员工提交请假申请
等待审批结果
HR备案
通知申请人
流程结束
http://www.dtcms.com/a/393371.html

相关文章:

  • SpringBoot自动配置核心原理
  • Python 中的 Builder 模式实践 —— 以 UserProfileBuilder 为例
  • 探秘陌讯AIGC检测算法优化:详解MPS加速与模型热重载的实现原理
  • 1.3 管道(Pipe)核心知识点总结
  • GLUE:自然语言理解评估的黄金基准
  • 第13章 智能监测-设备数据处理
  • GEO技术科普
  • B004基于三菱FX2NPLC智能自提柜控制系统仿真
  • MTK CPU温度调节一知半解
  • V90伺服驱动器“速度模式“双极性模拟量速度控制
  • 课前练习题-20250919
  • C++类与对象
  • 企业级Docker镜像仓库Harbor
  • ESD防护设计宝典(七):生命线的秩序——关键信号线布线规则
  • 【ROS2】Beginner : CLI tools - 理解 ROS 2 话题
  • RL知识回顾
  • Java多线程编程指南
  • 【论文速读】基于地面激光扫描(TLS)和迭 代最近点(ICP)算法的土坝监测变形分析
  • GAMES101:现代计算机图形学入门(Chapter2 向量与线性代数)迅猛式学线性代数学习笔记
  • 汉语构词智慧:从历史优势到现实考量——兼论“汉语全面改造英语”的可能性
  • 仿tcmalloc高并发内存池
  • 墨者学院-通关攻略(持续更新持续改进)
  • 10厘米钢板矫平机:把“波浪”压成“镜面”的科学
  • ESP32- 项目应用1 智能手表之网络配置 #6
  • TCP/IP 互联网的真相:空间域和时间域的统计学
  • 同步与异步
  • C++中char与string的终极对比指南
  • Java基础 9.20
  • U228721 反转单链表
  • 串行总线、并行总线