日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
聊聊一個(gè)用Go實(shí)現(xiàn)的有限狀態(tài)機(jī)

easyfsm

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

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供漳浦網(wǎng)站建設(shè)、漳浦做網(wǎng)站、漳浦網(wǎng)站設(shè)計(jì)、漳浦網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、漳浦企業(yè)網(wǎng)站模板建站服務(wù),10多年漳浦做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

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

這就是easyfsm的由來。

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

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

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

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

整體設(shè)計(jì):

簡單解釋一下:

  • 業(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定義了這兩個(gè)接口。

我們可以實(shí)現(xiàn)這兩個(gè)接口:

完整代碼:

總結(jié)

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

https://github.com/wuqinqiang/easyfsm


網(wǎng)頁題目:聊聊一個(gè)用Go實(shí)現(xiàn)的有限狀態(tài)機(jī)
URL標(biāo)題:http://www.dlmjj.cn/article/cdgdoos.html