目录
- 背景和价值
- 技巧总结
- 步骤设计技巧
- 案例
- 步骤的扩展点的多种实现模式
- 参考资料
背景和价值
技巧总结
步骤设计技巧
- 步骤是最小可编排的业务规则单元。步骤是解决不同场景有或者没有的业务规则组件的问题,从技术角度来看编排要比规则的逻辑判断更简单。 步骤的扩展点,是解决不同的业务场景规则的实现差异。
- 如果同一个步骤,不同业务场景在细粒度的规则有 存在,和不存在的差异,那么需要把步骤进一步拆细,实现可编排的目的。如果步骤太粗,规则实现会很复杂,影响扩展。
案例
如订单评审L5的校验逻辑有:客户是否正常合作,购销关系是否存在。
--
业务场景 | 客户状态校验 | 购销关系校验 |
---|---|---|
贸易合规 | N | N |
中国区_大货 | Y | Y |
欧洲_大货 | Y | N |
如果订单评审的校验封装一个步骤会发现代码难以扩展,伪代码
if '客户状态校验'if '贸易合规' Noneif '中国区_大货' || '欧洲_大货' then xxx
if '购销关系校验'if '贸易合规' Noneif '中国区_大货' then xxxif '欧洲_大货' then xxx
这个时候如果新增新的场景,扩展不是那么容易实现。 所以需要进一步把步骤拆细。 拆成客户校验 和 购销关系校验2个步骤。那么代码扩展就简单多了
客户状态校验步骤的代码
通用规则
购销关系校验校验步骤的代码
通用规则
贸易合规没有客户状态校验 , 购销关系校验在步骤编排的时候,不包含这2个步骤即可。 欧洲_大货场景也是类似
步骤的扩展点的多种实现模式
1 策略。 不同的场景走不通的策略。 策略模式
2 所有场景都走通过的逻辑,不同的场景再细分不同的规则。模板方法设计模式
比如客户是否存在校验,不同的场景有不同的规则差异,可以参考以上两种模式。