成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊一個用 Go 實現(xiàn)的有限狀態(tài)機

開發(fā) 項目管理
為什么需要區(qū)分業(yè)務(wù)?因為絕大多數(shù)業(yè)務(wù)的狀態(tài)值都是從數(shù)據(jù)庫中獲取的,比如訂單表的訂單狀態(tài),商品表中的商品狀態(tài),有可能值是相同的。

easyfsm

之前看過新亮老哥的go-fsm-order,感覺還不錯。最近在遷移項目的時候,發(fā)現(xiàn)有多處業(yè)務(wù)存在一些狀態(tài)的流轉(zhuǎn),所以就基于go-fsm-order做了重改,讓它可以在不同的業(yè)務(wù)場景下使用。

為什么不使用looplab/fsm,star挺多的啊。

不是特別喜歡,每次實例化fsm都需要重新傳遞對應(yīng)events(雖然我們可以統(tǒng)一封裝),我更期望在項目啟動時把此項目涉及到不同業(yè)務(wù)狀態(tài)機流轉(zhuǎn)注冊到fsm,對應(yīng):不同業(yè)務(wù)->[狀態(tài)]->[事件]->處理事件主體(包含handler、params、hooks、observers等)。

這就是easyfsm的由來。

當(dāng)你開始進(jìn)行狀態(tài)流轉(zhuǎn)時,只需要:

為什么需要區(qū)分業(yè)務(wù)?

因為絕大多數(shù)業(yè)務(wù)的狀態(tài)值都是從數(shù)據(jù)庫中獲取的,比如訂單表的訂單狀態(tài),商品表中的商品狀態(tài),有可能值是相同的。

同一個業(yè)務(wù)同一屬性對應(yīng)狀態(tài)值表達(dá)單一,不同業(yè)務(wù)下屬性狀態(tài)可能會出現(xiàn)值相同,但所表達(dá)的含義是不同的。

整體設(shè)計:

簡單解釋一下:

  • 業(yè)務(wù):比如有商品狀態(tài)業(yè)務(wù)、訂單狀態(tài)業(yè)務(wù).....
  • 狀態(tài):訂單待付款、待發(fā)貨....
  • 事件:對應(yīng)狀態(tài)僅可達(dá)事件集合。比如待付款狀態(tài)的可達(dá)事件僅有:支付事件和取消事件(取決于自己的業(yè)務(wù))
  • 執(zhí)行事件主體:執(zhí)行自定義的事件函數(shù),如果有需要,還可以自定義執(zhí)行事件前后hook,事件訂閱者(比如支付事件發(fā)生后,異步通知用戶等)

使用姿勢

首先自定義業(yè)務(wù)、狀態(tài)、事件。

自定義事件主體

注冊到easyfsm

開始使用

完整示例代碼如下

Hook

如果想在處理事件函數(shù)的前后執(zhí)行一些hook,或者在事件執(zhí)行完畢,異步執(zhí)行一些其他業(yè)務(wù),easyfsm定義了這兩個接口。

我們可以實現(xiàn)這兩個接口

完整代碼

總結(jié)

上面簡單介紹了下easyfsm設(shè)計以及對應(yīng)使用姿勢。

https://github.com/wuqinqiang/easyfsm

責(zé)任編輯:武曉燕 來源: RememberGo
相關(guān)推薦

2025-04-28 08:25:00

狀態(tài)機框架狀態(tài)機開發(fā)

2013-09-03 09:57:43

JavaScript有限狀態(tài)機

2021-04-29 09:31:05

前端開發(fā)技術(shù)

2021-09-07 06:40:26

狀態(tài)機識別地址

2014-05-21 11:09:56

前端有限狀態(tài)機

2025-06-04 01:55:00

2024-01-08 09:46:47

2023-04-12 07:14:31

Spring應(yīng)用業(yè)務(wù)

2020-10-15 10:38:35

C語言狀態(tài)模型

2025-04-14 09:30:11

Spring狀態(tài)機訂單

2024-10-10 17:46:06

2011-06-24 16:09:24

Qt 動畫 狀態(tài)機

2023-03-06 07:35:30

狀態(tài)機工具訂單狀態(tài)

2020-12-02 13:33:58

函數(shù)指針編程語言

2021-12-28 08:24:18

函數(shù)指針有限狀態(tài)機編程

2023-05-10 08:05:41

GoWeb應(yīng)用

2022-06-10 13:03:44

接口重試while

2010-06-18 12:38:38

UML狀態(tài)機視圖

2021-07-08 09:15:20

單片機編程狀態(tài)機編程語言

2010-06-18 13:25:44

UML狀態(tài)機視圖
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产国产精品久久久久 | 精品无码久久久久久国产 | 日韩精品三区 | 成人免费观看男女羞羞视频 | 91精品国产综合久久精品 | 欧美极品在线视频 | 99久久精品免费视频 | 午夜久久久久 | 国产精品久久av | 精品久久精品 | 久久草视频 | 亚洲免费成人 | 99亚洲精品| 精品亚洲一区二区三区 | 婷婷毛片| 欧美三级视频在线观看 | 日韩欧美在线免费观看视频 | 久久国产高清 | 精品国产精品三级精品av网址 | 精品电影 | 亚洲欧洲精品一区 | 欧美一区二 | 视频一区二区三区中文字幕 | 免费观看一级毛片 | 国产精品视频一二三 | 天天操天天摸天天干 | 色噜噜狠狠色综合中国 | 久久国产精99精产国高潮 | 精品啪啪 | 国产乱码久久久久久一区二区 | 激情五月婷婷 | 欧美日韩视频在线 | 中文字幕二区三区 | 亚洲在线免费 | 日韩欧美在线观看 | 成人三级视频在线观看 | 欧美久久久久久久久中文字幕 | 国产精品高清在线 | 精品国产乱码久久久久久影片 | 欧美天堂一区 | 久久尤物免费一区二区三区 |