Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xinliangnote/go-fsm-order

使用 golang 实现的订单状态机。
https://github.com/xinliangnote/go-fsm-order

finite-state-machine fsm fsm-order go-fsm go-fsm-order

Last synced: 4 months ago
JSON representation

使用 golang 实现的订单状态机。

Awesome Lists containing this project

README

        

## 订单流程图

![订单流转图](https://i.loli.net/2021/07/02/N58rKtCGUDbdWJv.png)

基于上述订单流转流程,使用有限状态机的方式用 `Golang` 代码进行实现。

## 运行结果

```
正在处理创建订单逻辑,订单ID(1), 订单名称(测试订单) ... 处理完毕!
发送短信,给(18888888888)发送了(恭喜你预定成功了!)
操作[创建订单],状态从 [默认] 变成 [已预订]
[警告] 状态(已预订)不允许操作(修改订单)
操作[确定订单],状态从 [已预订] 变成 [已确认]
操作[修改订单],状态从 [已确认] 变成 [已预订]
操作[确定订单],状态从 [已预订] 变成 [已确认]
操作[支付订单],状态从 [已确认] 变成 [已锁定]
```

## 有限状态机

### 简介
有限状态机(Finite-state machine,简写:FSM)又可以称作有限状态自动机,简称状态机。

它必须是可以附着在某种事物上的,且该事物的状态是有限的,通过某些触发事件,会让其状态发生转换。为此,有限状态机就是描述这些有限的状态和触发事件及转换行为的数学模型。

PS:关于状态机的简介可以去网上搜索,以上供参考。

### 特性
- 状态总数(state)是有限的。
- 任一时刻,只处在一种状态之中。
- 某种条件下,会从一种状态转变(transition)到另一种状态。

## 联系作者

![联系作者](https://i.loli.net/2021/07/02/cwiLQ13CRgJIS86.jpg)