流程编排在电商系统中应用

本文介绍了流程编排的概念,将其定义为将接口或复杂业务代码拆分成节点,适用于复杂的业务系统,如电商交易。流程编排的优点包括代码重用、符合设计原则和便于理解业务,但同时也存在增加代码理解和编写难度的缺点。文章提供了流程编排的代码示例和UML关系图。
摘要由CSDN通过智能技术生成

什么是流程编排?

流程编排就是将接口或者一段复杂的业务代码拆分成一个个节点/步骤然后聚合成一条执行链,流程编排适合复杂的业务系统,列如电商交易系统。

名词

  • 流程: 执行处理的整个过程(通常可以理解为一个接口,如下单接口)

  • 节点/步骤:一个完整的流程可以分为多个节点,每个节点可以完成单一的业务行为,比如下单流程中的限流、限购、拆单等。一个节点通常是一个类或者spring bean。

  • 上下文:将节点返回的数据设置到上下文context中,让后续节点能够获取到相关数据(如拆单节点需要获取到初始化购物车节点中的信息)

流程编排的优缺点

优点

  1. 实现代码重用。一个公共节点可以在多套流程中复用

0

2.符合设计模式单一职责,开闭原则思想。一个节点只需要聚焦某一块业务上,如果产品需要在新增一个需求,只需要在新增一个节点,不需要再原先节点上进行修改。

3.方便理解业务。通过xml配置配上每个节点的注释很好的能够帮助新同学理解该流程实现的过程

<bean id="obmTradeCreateTradeExecutorFlow" class="com.beibei.ws.trade.flow.SequenceTradeStageExecutorFlow">
    <property name="paramCheckStageList">
        <list>
            <!--入参校验-->
            <ref bean="tradeCreateParamsCheckStage"/>
            <!--用户限流-->
            <ref bean="tradeCreateUserLimitStage"/>
            <!--发票入参校验-->
            <ref bean="tradeCreateInvoiceCheckStage"/>
            <!--余额校验-->
            <ref bean="tradeCreateBalanceCheckStage"/>
        </list>
    </property>

缺点:

1.增加代码编写和理解的难度(毕竟新增一个节点需要新起一个类)

 

流程示例:

1

 

 

代码实现

uml关系图:

 

 

TradeFlowParam:流程入参

TradeFlowResult:流程出参

TradeFlowContext:流程上下文,用于传递各个节点数据

TradeExecutorFlow:流程编排接口,只有一个execute方法

TradeStageExecutorFlow:流程编排抽象类,用于定制整套流程模板执行顺序

SequenceTradeStageExecutorFlow:具体实现类

 

TradeExecutorFlow:

public interface TradeExecutorFlow<I extends TradeFlowParam, O extends TradeFlowResult> { O execute(I param); }

 

 

 

SequenceTradeStageExecutorFlow:

/**
 * 顺序执行 trade stage 编排执行器
 */
public class SequenceTradeStageExecutorFlow exten
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值