久久人妻av一区二区软件 ,欧美日韩中文亚洲另类春色,国产欧美亚洲精品a,亚洲a∨无码男人的天堂,精品亚洲人伦一区二区三区,国产美女精品一区二区,欧美精品aaa久久久影院,成人精品天堂一区二区三区
首頁 理財 > 正文

springboot~stateless4j實現狀態機_全球頭條


(資料圖片僅供參考)

狀態機,包括了狀態和動作,某個狀態下,只能執行某些動作,如果動作不匹配,狀態是不會進行變更了,這樣就保護了我們狀態字段的準備性,不能隨意改變,必須按著我們設計的規則進行狀態的輪轉。

Stateless實現的狀態機

  1. Stateless:Stateless 是一個簡單且易于使用的狀態機庫,它提供了基本的狀態轉換和動作執行功能。以下是一個使用 Stateless 實現的簡單狀態機示例:
import com.github.oxo42.stateless4j.StateMachine;import com.github.oxo42.stateless4j.StateMachineConfig;import com.github.oxo42.stateless4j.transitions.Transition;public class StateMachineExample {enum State {/** * 表示電話機已經從底座拿起,但用戶還沒有撥打或者接聽電話,此時電話處于空閑狀態 */OFF_HOOK,/** * 響鈴 */RINGING,/** * 連接 */CONNECTED,/** * 表示通話的一方需要暫時掛起通話 */ON_HOLD}enum Trigger {/** * 用戶撥打電話并等待接聽 */CALL_DIALED,/** * 表示通話結束后掛斷電話 */HUNG_UP,/** * 表示接聽方接通電話,此時雙方正常通話。 */CALL_CONNECTED,/** * 表示通話的一方需要暫時掛起通話 */PLACED_ON_HOLD,/** * 表示恢復保持狀態執行通話【與PLACED_ON_HOLD對應】 */TAKEN_OFF_HOLD,/** * 留言 */LEFT_MESSAGE,/** * 表示通話的一方結束通話并停止使用電話 */STOP_USING_PHONE}    public static void main(String[] args) {        // 創建狀態機配置        StateMachineConfig config = new StateMachineConfig<>();        // 定義狀態轉換規則        config.configure(State.OFF_HOOK)                .permit(Trigger.CALL_DIALED, State.RINGING);        config.configure(State.RINGING)                .permit(Trigger.HUNG_UP, State.OFF_HOOK)                .permit(Trigger.CALL_CONNECTED, State.CONNECTED);        config.configure(State.CONNECTED)                .permit(Trigger.LEFT_MESSAGE, State.OFF_HOOK)                .permit(Trigger.HUNG_UP, State.OFF_HOOK)                .permit(Trigger.PLACED_ON_HOLD, State.ON_HOLD);        config.configure(State.ON_HOLD)                .permit(Trigger.TAKEN_OFF_HOLD, State.CONNECTED)                .permit(Trigger.HUNG_UP, State.OFF_HOOK);        // 創建狀態機實例        StateMachine stateMachine = new StateMachine<>(State.OFF_HOOK, config);        // 執行狀態轉換        stateMachine.fire(Trigger.CALL_DIALED);        stateMachine.fire(Trigger.CALL_CONNECTED);        stateMachine.fire(Trigger.PLACED_ON_HOLD);        stateMachine.fire(Trigger.TAKEN_OFF_HOLD);        stateMachine.fire(Trigger.HUNG_UP);        // 獲取當前狀態        State currentState = stateMachine.getState();        System.out.println("Current State: " + currentState);    }}

在上面的示例中,我們使用 StateMachine類創建了一個狀態機,并定義了狀態(State)和觸發器(Trigger)。通過配置狀態轉換規則,我們可以使用 fire()方法觸發狀態轉換。最后,我們獲取當前狀態并輸出。

關鍵詞:

最近更新

關于本站 管理團隊 版權申明 網站地圖 聯系合作 招聘信息

Copyright © 2005-2023 創投網 - www.bbcnxku.cn All rights reserved
聯系我們:39 60 29 14 2@qq.com
皖ICP備2022009963號-3

主站蜘蛛池模板: 欧美日韩国产在线人成| 亚洲综合色区中文字幕| 天天碰天天狠天天透澡| 欧美白胖bbbbxxxx| 久久久久久久久久久久中文字幕 | av在线播放日韩亚洲欧我不卡| 亚洲综合中文字幕无线码| 中文字幕人妻在线中字| 国产乱人视频在线播放 | 国内精品视这里只有精品| 无码综合天天久久综合网色吧影院| 亚洲aⅴ综合色区无码一区| 无码专区亚洲综合另类| 天天摸日日添狠狠添婷婷| 2020亚洲欧美国产日韩| 亚洲乱码日产精品一二三| 日韩欧美亚洲综合久久影院d3| 成av人片在线观看天堂无码| 成年轻人电影www无码| 久久无码中文字幕免费影院 | 五十路熟妇无码专区| 中文字幕人妻无码专区| 国产欧美日韩综合在线成| 国产成人av无码精品天堂| 国产人妻精品一区二区三首| 久热爱精品视频在线◇| 国产精品久久久久电影院| 亚洲精品国产高清在线观看| 日韩欧美一区二区三区永久免费| 人妻无码一区二区三区av| 欧美日韩亚洲中文字幕二区| 奇米四色7777中文字幕| 最新精品露脸国产在线| 中文字幕无码乱人伦在线| 精品国产aⅴ无码一区二区| 东京热tokyo综合久久精品| 婷婷六月亚洲中文字幕| 亚洲乱码国产乱码精华| 中文字幕久久精品无码| 国产av亚洲精品久久久久久| 久久久免费无码成人影片|