一种利用状态机装配业务操作的方法技术

技术编号:38430871 阅读:9 留言:0更新日期:2023-08-11 14:18
本发明专利技术涉及装配业务操作的方法技术领域,具体为一种利用状态机装配业务操作的方法,包括以下步骤:步骤一:将单据的一次状态流转抽象为event(事件),每次状态的流转由event(事件)触发,通过状态机工厂对客户程序提供API,步骤二:将所有状态流转的集合transitions变构成了一个状态机,并用java代码表示,步骤三:定义三个预订单状态:1.WAIT_PAY(待支付),2.COMPLETE(已完成),3.CANCEL(已取消),步骤四:定义三个预订单事件1.BOOKING(下单),2.PAY(支付),3.CANCEL(取消),状态流可配置化可视化,在一个地方可以浏览所有的状态流转,状态操作内聚在状态机内部,对客户程序透明,可进行业务操作的自由拼装,从而实现业务逻辑和代码的高度复用。和代码的高度复用。和代码的高度复用。

【技术实现步骤摘要】
一种利用状态机装配业务操作的方法


[0001]本专利技术涉及装配业务操作的方法
,具体为一种利用状态机装配业务操作的方法。

技术介绍

[0002]面向过程编程和面向对象编程是软件工程中主流的两种编程范式,面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤实现并顺序调用;面向对象通过模拟现实世界,将现实世界中的真实业务逻辑抽象成对象、方法、关系来处理问题。
[0003]大部分软件系统都涉及业务中某些状态的流转,例如OA系统中的请假单,电商中的订单、配送单等,这些状态流转往往伴随着自己特有的操作,例如请假单审批之后会通过邮件或短信等手段通知发起人。
[0004]传统的软件编程手段需要先更新请假单的状态为已审批,然后调用邮件通知函数通知发起人,一个完整的OA系统涉及上百种单据,每种单据数个至数十个状态不等,可能伴随着相同的业务操作或不同的业务操作,这就是业务系统的复杂性所在,面向过程或面向对象的编程范式在应付这类涉及状态流转的复杂的业务系统时已经略显笨重,因此这里提出一种利用状态机装配业务操作的方法。

技术实现思路

[0005](一)解决的技术问题
[0006]针对现有技术的不足,本专利技术提供了一种利用状态机装配业务操作的方法。
[0007](二)技术方案
[0008]为实现上述目的,本专利技术提供如下技术方案:一种利用状态机装配业务操作的方法,包括以下步骤:
[0009]步骤一:将单据的一次状态流转抽象为event(事件),每次状态的流转由event(事件)触发,通过状态机工厂对客户程序提供API。
[0010]步骤二:将所有状态流转的集合transitions变构成了一个状态机,并用java代码表示。
[0011]步骤三:定义三个预订单状态:1.WAIT_PAY(待支付) 2.COMPLETE(已完成) 3.CANCEL(已取消)。
[0012]步骤四:定义三个预订单事件1.BOOKING(下单) 2.PAY(支付) 3.CANCEL(取消)。
[0013]步骤五:通过步骤四进行定义三个预订单的状态流转,包括以下:
[0014]1.BOOKING下单,订单为待支付(WAIT_PAY)。
[0015]2.PAY支付,订单从待支付(WAIT_PAY)流转到完成(COMPLETE)。
[0016]3.CANCEL取消,订单从待支付(WAIT_PAY)流转到已取消(CANCEL)。
[0017]进一步的,本专利技术改进有,所述状态包括source state(源状态)、target state(目标状态)、transition(一次状态流转)及interceptor(事件拦截器)。
[0018]进一步的,本专利技术改进有,所述transition(一次状态流转)由event触发,从source state流转到target state。
[0019]进一步的,本专利技术改进有,所述客户程序包括WEB及APP。
[0020]进一步的,本专利技术改进有,所述状态机包括状态变更持久化、状态变更业务拦截器、异常处理、统计报表及系统日志。
[0021]进一步的,本专利技术改进有,所述状态变更持久化包括SOL、Redis及MQ。
[0022]进一步的,本专利技术改进有,所述状态之间的变更都内聚在状态机内实现。
[0023](三)有益效果
[0024]与现有技术相比,本专利技术提供了一种利用状态机装配业务操作的方法,具备以下有益效果:
[0025]该利用状态机装配业务操作的方法,通过将单据的一次状态流转抽象为event(事件),且每次状态之间的流转都通过event(事件)触发,并通过状态机工厂对客户程序提供API,所述状态流转的集合transitions变构成了一个状态机,并采用java代码进行表示,且通过定义实现了状态流的配置化,还能通过状态机工厂对客户程序提供API,所述客户程序包括WEB及APP,通过APP能够方便操作,所有的业务操作通过对状态流转的拦截进行前置或后置处理,从而实现业务操作的自由拼装,实现业务逻辑的代码的高度复用,且所有的状态的变更处理都内聚在状态机的内部进行实现,集中的处理方式能够提高实用性,本专利技术的状态机装配业务操作的方法具有如下效果:
[0026]1、状态流可配置化可视化,在一个地方可以浏览所有的状态流转。
[0027]2、状态操作内聚在状态机内部,对客户程序透明。
[0028]3、可进行业务操作的自由拼装,从而实现业务逻辑和代码的高度复用。
附图说明
[0029]图1为本专利技术结构示意图;
具体实施方式
[0030]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0031]请参阅图1,一种利用状态机装配业务操作的方法,包括以下步骤:
[0032]步骤一:将单据的一次状态流转抽象为event(事件),每次状态的流转由event(事件)触发,通过状态机工厂对客户程序提供API。
[0033]步骤二:将所有状态流转的集合transitions变构成了一个状态机,并用java代码表示。
[0034]步骤三:定义三个预订单状态:1.WAIT_PAY(待支付) 2.COMPLETE(已完成) 3.CANCEL(已取消)。
[0035]步骤四:定义三个预订单事件1.BOOKING(下单) 2.PAY(支付) 3.CANCEL(取消)。
[0036]步骤五:通过步骤四进行定义三个预订单的状态流转,包括以下:
[0037]1.BOOKING下单,订单为待支付(WAIT_PAY)。
[0038]2.PAY支付,订单从待支付(WAIT_PAY)流转到完成(COMPLETE)。
[0039]3.CANCEL取消,订单从待支付(WAIT_PAY)流转到已取消(CANCEL)。
[0040]进一步的,本专利技术改进有,所述状态包括source state(源状态)、target state(目标状态)、transition(一次状态流转)及interceptor(事件拦截器)。
[0041]进一步的,本专利技术改进有,所述transition(一次状态流转)由event触发,从source state流转到target state。
[0042]进一步的,本专利技术改进有,所述客户程序包括WEB及APP。
[0043]进一步的,本专利技术改进有,所述状态机包括状态变更持久化、状态变更业务拦截器、异常处理、统计报表及系统日志。
[0044]进一步的,本专利技术改进有,所述状态变更持久化包括SOL、Redis及MQ。
[0045]进一步的,本发本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种利用状态机装配业务操作的方法,其特征在于:包括以下步骤:步骤一:将单据的一次状态流转抽象为event(事件),每次状态的流转由event(事件)触发,通过状态机工厂对客户程序提供API。步骤二:将所有状态流转的集合transitions变构成了一个状态机,并用java代码表示。步骤三:定义三个预订单状态:1.WAIT_PAY(待支付)2.COMPLETE(已完成)3.CANCEL(已取消)。步骤四:定义三个预订单事件1.BOOKING(下单)2.PAY(支付)3.CANCEL(取消)。步骤五:通过步骤四进行定义三个预订单的状态流转,包括以下:1.BOOKING下单,订单为待支付(WAIT_PAY)。2.PAY支付,订单从待支付(WAIT_PAY)流转到完成(COMPLETE)。3.CANCEL取消,订单从待支付(WAIT_PAY)流转到已取消(CANCEL)。2.根据权利要求1所述的一种利用状态机装配业务操作的方法,其特征在...

【专利技术属性】
技术研发人员:褚强
申请(专利权)人:汇承金融科技服务南京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1