The present invention provides a method and system for the implementation of a state machine. The method includes: defining all states involved in a business process as the state of a state machine, determining the current state of a state machine, determining the next state of the current state under the conditions described, according to the current state of the state machine and the conditions of the input. According to the determined next state, the control state machine jumps from the current state to the next state, and performs the corresponding action. For complex business processes with different states, the invention uses the characteristics of the state machine to display the different branches of the business process in visual view, simplifies the complexity of the whole business process, easy to maintain, and avoids the complexity of the analysis of many conditions in the existing business process. The visual view formed by the state machine is very clear.
【技术实现步骤摘要】
一种状态机的实现方法及系统
本专利技术涉及状态机
,更具体地,涉及一种状态机的实现方法及系统。
技术介绍
在实际应用中经常会遇到一些具有状态走向的大型系统业务流程,如订单系统,一个订单具有创建、提交、待支付、已支付、已完成、已删除、处理中等等各种状态,不同状态根据不同的场景又有不同的走向。在业务逻辑执行的过程中,在代码中需要编写很多if/else分支,程序代码非常混乱。同时,分支判断太多的代码也不易于理解,不易于维护,在对这些复杂业务流程处理非常繁琐。
技术实现思路
本专利技术提供一种克服上述问题或者至少部分地解决上述问题的一种状态机的实现方法及系统,能够解决处理大型复杂业务流程中的繁琐、维护困难的问题。根据本专利技术的一个方面,提供一种状态机的实现方法,包括:将业务流程中涉及的所有状态定义为状态机的状态;确定状态机的当前状态,根据状态机的当前状态和输入的条件,确定所述当前状态在所述条件下的下一个状态以及对应的动作;根据确定出来的所述下一个状态,控制状态机从所述当前状态跳转至所述下一个状态,并执行所述对应的动作。本专利技术的有益效果为:对于具有不同状态走向的复杂业务流程,使用状态机的特性,将业务流程的不同分支状态用可视化视图表现出来,简化了整个业务流程的复杂度,易于维护,避免了现有的一个业务流程中具有众多条件分析带来的复杂,使用状态机形成的可视化视图非常清晰明了。在上述技术方案的基础上,本专利技术还可以作如下改进。进一步的,在所述将业务流程中涉及的所有状态定义为状态机的状态之前还包括:在spring框架中配置当前状态、条件和下一个状态、对应的动作之间的对 ...
【技术保护点】
一种状态机的实现方法,其特征在于,包括:将业务流程中涉及的所有状态定义为状态机的状态;确定状态机的当前状态,根据状态机的当前状态和输入的条件,确定所述当前状态在所述条件下的下一个状态以及对应的动作;根据确定出来的所述下一个状态,控制状态机从所述当前状态跳转至所述下一个状态,并执行所述对应的动作。
【技术特征摘要】
1.一种状态机的实现方法,其特征在于,包括:将业务流程中涉及的所有状态定义为状态机的状态;确定状态机的当前状态,根据状态机的当前状态和输入的条件,确定所述当前状态在所述条件下的下一个状态以及对应的动作;根据确定出来的所述下一个状态,控制状态机从所述当前状态跳转至所述下一个状态,并执行所述对应的动作。2.如权利要求1所述的状态机的实现方法,其特征在于,在所述将业务流程中涉及的所有状态定义为状态机的状态之前还包括:在spring框架中配置当前状态、条件和下一个状态、对应的动作之间的对应关系,形成对应关系表;相应的,所述根据状态机的当前状态和输入的条件,确定所述当前状态在所述条件下的下一个状态以及对应的动作具体包括:根据确定出的状态机的当前状态以及输入的条件,在所述对应关系表中进行查询,确定出与当前状态以及输入条件对应的下一个状态和对应的动作。3.如权利要求2所述的状态机的实现方法,其特征在于,所述状态机包括初始状态和结束状态,所述方法还包括:当所述当前状态为结束状态时,控制状态机停止跳转;以及,所述根据确定出的状态机的当前状态以及输入的条件,在所述对应关系表中进行查询,确定出与当前状态以及输入条件对应的下一个状态和对应的动作还包括:当根据状态机的当前状态以及输入的条件,在所述对应关系表中找不到相匹配的下一个状态和对应的动作,则控制状态机停止跳转。4.如权利要求2所述的状态机的实现方法,其特征在于,所述根据状态机的当前状态和输入的条件,确定所述当前状态在所述条件下的下一个状态以及对应的动作具体包括:将手动输入条件作为触发信号,根据该触发信号,确定状态机的当前状态,根据状态机的当前状态以及输入的条件,确定所述当前状态的下一个状态以及对应的动作。5.如权利要求2所述的状态机...
【专利技术属性】
技术研发人员:林皓,张托,王周松,龚建新,
申请(专利权)人:江苏神州信源系统工程有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。