如何基于规则引擎打造规则库

本文探讨了如何基于规则引擎或动态语言构建业务规则库,以应对不断变化的需求。规则引擎能实现标准化配置,但可能使系统复杂;动态语言简化开发,但逻辑较简单;表格配置直观易用,但不够灵活。为了提升管理水平,应考虑用户权限、规则分类、版本控制和测试功能。同时,规则库管理需与现有权限系统结合,确保标准化和规范化。
摘要由CSDN通过智能技术生成

    规则引擎是面向技术人员的工具。目前技术人员为什么会选择规则引擎来使用,主要是基于如下情形来考虑:

    1、业务逻辑从程序代码中脱离出来。通过配置来实现业务规则。

    2、业务规则的变更,可以直接由用户通过web界面来修改和变更。

    针对这一类需求情况,其实我们有一般由以下的几种可选方案:

    1、选择规则引擎来实现。

          现有的规则引擎产品一般都能满足以上这两种要求。可以不用代码,比如Java来实现业务逻辑,而采用规则语言通过规则配置器来完成。用户需要变更时,一般都会提供C/S或者B/S版本的规则配置器来实现。

    2、采用动态语言:

          直接采用JS或者其他的动态语言BeanShell等,也可以实现不通过Java代码来实现业务逻辑。通过也可以提供一个编辑界面,让用户来进行修改。

    3、表格配置或者自定义公式

           通过定义一个表格或者加上一定的自定义公式语法来实现具体的逻辑。

     以上几种方案,在不同的项目中,都有各自的优缺点:

    1、采用规则引擎实现,使得业务规则的配置更加标准化、专业化。同时一般的规则引擎都会对修改的记录进行版本控制,以便于跟踪、测试、恢复等操作。规则配置器一般提供的界面,更加人性化,用户使用上更加便捷。缺点是会使得整个系统的架构变得庞大,需要有人专门负责研究规则引擎,以及相关的配置和管理工具。

    2、采用动态语言的实现,对于开发上会更加简单。动态语言一般纯粹处理逻辑,因此接口设计上会更加容易。同时使用动态语言时,一般很少会去考虑继承关系、相互调用等问题。缺点是可支持的逻辑相对扁平化,也相对简单。同时动态语言需要有个学习

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值