JVS-Rules规则引擎系列篇(五):条件分支、决策表、决策树到底怎么选?

0 阅读3分钟

摘要:规则引擎中常见的判断方式包括条件分支、决策表和决策树。很多团队刚开始使用 JVS-Rules 时,不知道同一个业务规则应该选择哪种节点。本文从规则形态和维护方式出发,介绍三者的适用场景。

关键词:条件分支、决策表、决策树、JVS-Rules、规则引擎

1.png

一、为什么会有选择困难

同一个业务规则,往往可以用多种方式表达。

比如客户准入:

  • 可以用条件分支一层层判断。
  • 可以用决策表配置条件组合。
  • 可以用决策树表达判断路径。

如果只看最终结果,三者都可能实现。

但从可读性、维护性、复杂度来看,选择并不一样。

2.png

二、条件分支适合什么

条件分支适合简单、明确的流程路径判断。

典型形式是:

image.png

适合场景:

  • 年龄小于 18 岁直接拒绝。
  • 金额大于 10000 进入高级审批。
  • 订单状态为异常时进入人工处理。
  • 某个字段为空时返回错误结果。

条件分支的优势是直观。

但如果条件越来越多,分支越来越深,画布会变复杂,维护成本会上升。

3.png

三、决策表适合什么

决策表适合多条件组合对应多个结果。

典型形式是:

image.png

适合场景:

  • 客户等级、风险分、逾期次数决定额度。
  • 产品类型、渠道、地区决定费率。
  • 用户等级、活动类型决定优惠权益。
  • 评分区间和客户类别决定审批结论。

决策表的优势是结构清晰,适合业务人员维护。

如果规则天然可以整理成表格,就不要硬拆成大量条件分支。

4.png

四、决策树适合什么

决策树适合多层级、路径清晰、需要解释判断过程的规则。

典型形式是:

image.png

适合场景:

  • 风险识别路径。
  • 复杂准入判断。
  • 问卷式判断。
  • 多级分类规则。
  • 需要说明“为什么走到这个结果”的场景。

决策树的优势是路径表达清楚。

相比决策表,它更强调判断顺序和决策原因。

五、一个简单选择方法

可以用下面这个判断方式:

如果规则只有少量路径,优先用条件分支。

如果规则像一张表,优先用决策表。

如果规则像一棵逐层判断的树,优先用决策树。

如果规则需要先计算分值,再根据分值输出结果,可以使用评分卡 + 决策表。

如果某段规则会被多个流程复用,可以拆成独立决策流,再通过规则流节点引用。

六、案例对比

场景 1:年龄准入

规则:

image.png

推荐:条件分支。

原因:规则简单,路径明确。

场景 2:额度匹配

规则:

客户等级 + 风险分 + 逾期次数 -> 授信额度

推荐:决策表。

原因:多条件组合,适合表格维护。

场景 3:多层风险识别

规则:

image.png

推荐:决策树。

原因:判断过程有明显层级,需要解释路径。

七、不要只追求“能实现”

规则引擎配置时,一个常见误区是:只要能跑通就行。

但规则后续一定会变化。

所以要考虑:

  • 业务人员能不能看懂。
  • 实施人员能不能维护。
  • 开发人员能不能联调。
  • 规则执行路径能不能解释。
  • 规则变多后是否还能管理。

选节点,本质上是在选择未来的维护方式。

八、小结

条件分支、决策表、决策树没有绝对优劣。

它们分别适合不同形态的规则:

  • 条件分支:简单路径判断。
  • 决策表:多条件组合。
  • 决策树:多层级判断路径。

在 JVS-Rules 中,三者可以组合使用。真正好的规则设计,不是把所有规则塞进一个节点,而是根据业务表达方式选择最容易理解和维护的结构。