[发明专利]一种状态机的实现方法及系统在审
申请号: | 201711192780.4 | 申请日: | 2017-11-24 |
公开(公告)号: | CN107992332A | 公开(公告)日: | 2018-05-04 |
发明(设计)人: | 林皓;张托;王周松;龚建新 | 申请(专利权)人: | 江苏神州信源系统工程有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京路浩知识产权代理有限公司11002 | 代理人: | 王莹,吴欢燕 |
地址: | 210000 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 状态机 实现 方法 系统 | ||
技术领域
本发明涉及状态机技术领域,更具体地,涉及一种状态机的实现方法及系统。
背景技术
在实际应用中经常会遇到一些具有状态走向的大型系统业务流程,如订单系统,一个订单具有创建、提交、待支付、已支付、已完成、已删除、处理中等等各种状态,不同状态根据不同的场景又有不同的走向。
在业务逻辑执行的过程中,在代码中需要编写很多if/else分支,程序代码非常混乱。同时,分支判断太多的代码也不易于理解,不易于维护,在对这些复杂业务流程处理非常繁琐。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的一种状态机的实现方法及系统,能够解决处理大型复杂业务流程中的繁琐、维护困难的问题。
根据本发明的一个方面,提供一种状态机的实现方法,包括:
将业务流程中涉及的所有状态定义为状态机的状态;
确定状态机的当前状态,根据状态机的当前状态和输入的条件,确定所述当前状态在所述条件下的下一个状态以及对应的动作;
根据确定出来的所述下一个状态,控制状态机从所述当前状态跳转至所述下一个状态,并执行所述对应的动作。
本发明的有益效果为:对于具有不同状态走向的复杂业务流程,使用状态机的特性,将业务流程的不同分支状态用可视化视图表现出来,简化了整个业务流程的复杂度,易于维护,避免了现有的一个业务流程中具有众多条件分析带来的复杂,使用状态机形成的可视化视图非常清晰明了。
在上述技术方案的基础上,本发明还可以作如下改进。
进一步的,在所述将业务流程中涉及的所有状态定义为状态机的状态之前还包括:
在spring框架中配置当前状态、条件和下一个状态、对应的动作之间的对应关系,形成对应关系表;
相应的,所述根据状态机的当前状态和输入的条件,确定所述当前状态在所述条件下的下一个状态以及对应的动作具体包括:
根据确定出的状态机的当前状态以及输入的条件,在所述对应关系表中进行查询,确定出与当前状态以及输入条件对应的下一个状态和对应的动作。
进一步的,所述状态机包括初始状态和结束状态,所述方法还包括:
当所述当前状态为结束状态时,控制状态机停止跳转;以及,
所述根据确定出的状态机的当前状态以及输入的条件,在所述对应关系表中进行查询,确定出与当前状态以及输入条件对应的下一个状态和对应的动作还包括:
当根据状态机的当前状态以及输入的条件,在所述对应关系表中找不到相匹配的下一个状态和对应的动作,则控制状态机停止跳转。
进一步的,所述根据状态机的当前状态和输入的条件,确定所述当前状态在所述条件下的下一个状态以及对应的动作具体包括:
将手动输入条件作为触发信号,根据该触发信号,确定状态机的当前状态,根据状态机的当前状态以及输入的条件,确定所述当前状态的下一个状态以及对应的动作。
进一步的,所述根据状态机的当前状态和输入的条件,确定所述当前状态在所述条件下的下一个状态以及对应的动作具体包括:
根据状态机的当前状态以及当前状态、条件和下一个状态、对应的动作之间的对应关系,从状态机的当前状态开始,自动控制状态机按照执行顺序在不同的状态之间进行跳转,并执行跳转后对应的动作,直到状态机的当前状态为结束状态。
进一步的,所述对应的动作包括多个层级的子动作,所述根据确定出来的所述下一个状态,控制状态机从所述当前状态跳转至所述下一个状态,并执行相应的动作具体包括:
根据确定出来的下一个状态,控制状态机从所述当前状态跳转至所述下一个状态,并执行相应动作下的全部子动作或者部分子动作。
进一步的,所述状态机可以为多个,多个状态机之间为继承关系,形成父状态机和子状态机,通过在子状态机中实现父状态机的业务流程。
根据本发明的另一个方面,提供了一种状态机的实现系统,包括:
定义模块,用于将业务流程中涉及的所有状态定义为状态机的状态;
确定模块,用于确定状态机的当前状态,根据状态机的当前状态和输入的条件,确定所述当前状态在所述条件下的下一个状态以及对应的动作;
控制模块,用于根据确定出来的所述下一个状态,控制状态机从所述当前状态跳转至所述下一个状态,并执行所述对应的动作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏神州信源系统工程有限公司,未经江苏神州信源系统工程有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711192780.4/2.html,转载请声明来源钻瓜专利网。