[发明专利]一种状态转换方法及装置在审
申请号: | 201810543495.0 | 申请日: | 2018-05-30 |
公开(公告)号: | CN108845844A | 公开(公告)日: | 2018-11-20 |
发明(设计)人: | 王超 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448;G06F8/41 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 目标状态机 状态转换 二维数组 复杂状态 触发事件 关联关系 关系转换 状态变换 复杂度 出错 查找 | ||
本发明实施例公开了一种状态转换方法及装置,用于降低复杂状态机编码的复杂度,同时在复杂状态机进行状态变换时不容易出错。该方法包括:确定目标状态机的目标对应关系;将所述目标对应关系转换为状态转换二维数组;确定所述目标状态机的当前状态以及当前事件,所述当前状态包含于所述目标状态机中的各个状态,所述当前事件包含于所述各个状态的触发事件;根据所述目标状态机的当前状态以及当前事件从所述状态转换二维数组中查找第一状态以及第一动作,所述第一状态以及所述第一动作与所述当前状态以及所述当前事件具有关联关系;将所述目标状态机的当前状态转换为所述第一状态,并执行所述第一动作。
技术领域
本发明涉及通信领域,尤其涉及一种状态转换方法及装置。
背景技术
一个复杂的系统往往包含众多的状态,这些状态在某些条件或事件的触发下可能会转换成其他状态,并随之进行一系列的处理动作。有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。
现有的有限状态机中的程序设计往往使用if-else或者switch-case语句来实现。
不论是if-else还是switch-case语句,对于简单的状态机来说是适用的,但是对于复杂的状态机(如状态多、事件多、状态之间转换复杂的情况)就不适用了,会增加状态机编码的复杂度,同时复杂的状态变换也容易导致错误频出。
发明内容
本发明实施例提供了一种状态转换方法及装置,用于降低复杂状态机编码的复杂度,同时在复杂状态机进行状态变换时不容易出错。
本发明实施例第一方面提供了一种状态转换方法,具体包括:
确定目标状态机的目标对应关系,所述目标对应关系为所述目标状态机的各个状态、所述各个状态的触发事件、所述各个状态转换之后执行的动作之间的对应关系;
将所述目标对应关系转换为状态转换二维数组;
确定所述目标状态机的当前状态以及当前事件,所述当前状态包含于所述目标状态机中的各个状态,所述当前事件包含于所述各个状态的触发事件;
根据所述目标状态机的当前状态以及当前事件从所述状态转换二维数组中查找第一状态以及第一动作,所述第一状态以及所述第一动作与所述当前状态以及所述当前事件具有关联关系;
将所述目标状态机的当前状态转换为所述第一状态,并执行所述第一动作。
可选地,所述确定所述目标状态机的当前状态以及当前事件之前,所述方法还包括:
确定目标状态转换接口;
所述确定所述目标状态机的当前状态以及当前事件包括:
通过所述目标状态转换接口获取所述目标状态机的当前状态以及当前事件。
可选地,所述根据所述目标对应关系确定状态转换二维数组之前,所述方法还包括:
确定目标数据结构,所述目标数据结构用于对所述目标对应关系进行描述;
所述将所述目标对应关系转换为状态转换二维数组包括:
基于所述目标数据结构将所述目标对应关系转换为状态转换二维数组。
可选地,所述根据所述目标对应关系确定状态转换二维数组之前,所述方法还包括:
将所述目标状态机的各个状态以及所述各个状态的触发事件分别转换为相应的枚举变量;
根据所述相应的枚举变量以及所述目标对应关系确定目标表格;
所述根据所述目标对应关系确定状态转换二维数组包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810543495.0/2.html,转载请声明来源钻瓜专利网。