规则引擎及drools简介

规则引擎介绍

规则引擎定义

以下是百度百科的介绍:

规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。

在传统的软件开发中,业务决策和程序代码是糅合在一起的。伴随复杂、多变的业务逻辑,势必会频繁修改代码,规则引擎的提出,解决了上述难题。

Drools引入

以下是Drools官方文档的介绍,目前Drools的最新版本为7.19.0.Final

Drools是一个业务规则管理系统,具有基于前向链接和后向链接推理的规则引擎,允许快速可靠地评估业务规则和复杂的事件处理。 规则引擎也是创建专家系统的基本构建块,在人工智能中,该专家系统是模拟人类专家的决策能力的计算机系统。

Drools是为Java量身定制的基于Charles Forgy的RETE算法的规则引擎的实现。

一个规则文件

一个标准的规则文件是以.drl结尾的文件(支持决策表,Drools 提供的编译API也会先转化为.drl文件),.drl文件最终会编译成.java文件执行。

一个规则文件可以存放多个规则,除此之外,在规则文件当中还可以存放用户自定义的函数、数据对象及自定义查询等相关在规则当中可能会用到的一些对象。

文件结构图如下:
package
imports
globals
functions
queries
rules

对于一个规则文件而言,首先声明 package 是必须的,除 package 之外,其它对象在规
则文件中的顺序是任意的,也就是说在规则文件当中必须要有一个 package 声明,同时
package 声明必须要放在规则文件的第一行。一个规则通常包括三个部分:属性部分(attribute) 、条件部分(LHS)和结果部分(RHS) 一个标准规则的结构如下:

      Rule "Hello"
      when
              LHS
      then
              RHS
      end

看起来很简单。大多数情况下都不需要标点符号,规则名“name”前面的双引号也是可选的,换行符也是如此。 LHS是规则的条件部分, RHS是满足条件执行的操作部分。
有关Drools语法的介绍,可以参考官方文档或者网上相关的博客。

规则 vs 方法

在刚学习Drools的时候,容易混淆规则和普通的java类或者方法,可以参考规则和方法的区别

结语

在下节中,将基于Springboot展示一些Demo,关于Springboot的介绍可以参考纯洁的微笑的相关博客。

发布了13 篇原创文章 · 获赞 0 · 访问量 2603

猜你喜欢

转载自blog.csdn.net/weixin_43839871/article/details/89048623