框架建设实战5——状态机组件

在大部分业务中,状态机处理比较常见,且相当重要。比如电商的订单场景。

状态机:英文叫StateMachine。顾名思义,根据状态进行流程驱动的机器。

状态机的语义比较容易理解。调用示例代码如下:

java 复制代码
builder.externalTransition()

            .from(States.STATE1)

            .to(States.STATE2)

            .on(Events.EVENT1)

            .when(checkCondition())

            .perform(doAction());

其语义解释为:某个状态跳转到下个状态,会通过事件event来触发,并判断满足什么样的条件;若满足,则状态发生变更,并执行一定的动作。

方案实现:

本方案直接采用阿里大佬张建飞(Frank)的方案:状态机说明及实现

组件命名:

当然,框架的组件,无非将上述方案开源的代码 fork一份,自行包装即可 。由于此状态机方案无状态,在此采用util 类型的组件。即可以将之命名为:frame-util-statemachine

相关推荐
VidDown21 小时前
上传 2GB 文件别让 Django 接:分片上传、对象存储直传与秒传
python·django·音视频·状态模式·实时音视频·视频编解码·视频
Lvan的前端笔记1 天前
docker:基于docker的前端部署方案
前端·docker·状态模式
u0111026752 天前
图片处理接口如何统一错误信息 前端提示与后端错误码设计
前端·状态模式
星恒随风2 天前
Linux进程基础(二):进程调度、上下文切换、O(1)调度器、环境变量与虚拟地址空间
linux·笔记·学习·状态模式
江曦仁3 天前
ALV 选择框勾选不更新
状态模式
lank_M7 天前
抠图换深色背景有白边?先分清直通和预乘alpha
图像处理·人工智能·计算机视觉·状态模式
弹简特7 天前
【Java项目-企悦抽】17-抽奖模块02-抽奖接口实现
java·开发语言·状态模式·springboot
我是你的开心果7787 天前
ai全栈软件开发学习day27
人工智能·学习·状态模式
弹简特8 天前
【Java项目-企悦抽】16-抽奖模块01-获取活动完整信息接口实现
java·开发语言·状态模式·springboot
幽络源小助理10 天前
WordPress REST API 深度实战:从自定义端点到 Headless CMS 架构全拆解
架构·状态模式