阿里大佬说:还在写大量 if 来判断?试试用一个规则执行器来替代它

本文介绍了如何通过规则执行器来替代大量的if判断,提高代码的可维护性。作者面临一个试用用户申请规则拓展的需求,发现原有流程的可维护性差。于是设计并实现了规则执行器,包括规则的抽象、执行器构建和调用。规则执行器的优点在于规则独立,调用方规整,可以灵活拓展;但缺点是规则间可能存在数据依赖,直接修改公共DTO不合理,建议预先构建数据。
摘要由CSDN通过智能技术生成

近日在公司领到一个小需求,需要对之前已有的试用用户申请规则进行拓展。我们的场景大概如下所示:

还在写大量 if 来判断?试试用一个规则执行器来替代它

按照上述的条件我们可以得出的结论是:

  • 咱们的主要流程主要是基于 and 或者 or 的关系。
  • 如果有一个不匹配的话,其实咱们后续的流程是不用执行的,就是需要具备一个短路的功能。
  • 对于目前的现状来说,我如果在原有的基础上来改,只要稍微注意一下解决需求不是很大的问题,但是说后面可维护性非常差。

后面经过权衡过后,我还是决定将这个部分进行重构一下。

规则执行器

针对这个需求,我首先梳理了一下咱们规则执行器大概的设计, 然后我设计了一个 V1 版本和大家一起分享一下,如果大家也有这样的case 可以给我分享留言,下面部分主要是设计和实现的流程和 code.

规则执行器的设计

还在写大量 if 来判断?试试用一个规则执行器来替代它

对于规则的抽象并实现规则

还在写大量 if 来判断?试试用一个规则执行器来替代它

执行器构建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值