《Drools7.0.0.Final规则引擎教程》第3章 3.2 KIE概念&FACT对象

简介: 《Drools7.0.0.Final规则引擎教程》第3章 3.2 KIE概念&FACT对象

3.2.1 什么是KIE

KIE(Knowledge Is Everything),知识就是一切的简称。JBoss一系列项目的总称,在《Drools使用概述》章节已经介绍了KIE包含的大部分项目。它们之间有一定的关联,通用一些API。比如涉及到构建(building)、部署(deploying)和加载(loading)等方面都会以KIE作为前缀来表示这些是通用的API。

下图为KIE所包含的子项目结构图:


image.png3.2.2 KIE生命周期

无论是Drools还是JBPM,生命周期都包含以下部分:


编写:编写规则文件,比如:DRL,BPMN2、决策表、实体类等。

构建:构建一个可以发布部署的组件,对于KIE来说是JAR文件。

测试:部署之前对规则进行测试。

部署:利用Maven仓库将jar部署到应用程序。

使用:程序加载jar文件,通过KieContainer对其进行解析创建KieSession。

执行:通过KieSession对象的API与Drools引擎进行交互,执行规则。

交互:用户通过命令行或者UI与引擎进行交互。

管理:管理KieSession或者KieContainer对象。

3.2.3 FACT对象

Fact对象是指在使用Drools 规则时,将一个普通的JavaBean对象插入到规则引擎的 WorkingMemory当中的对象。规则可以对Fact对象进行任意的读写操作。Fact对象不是对原来的JavaBean对象进行Clone,而是使用传入的JavaBean对象的引用。规则在进行计算时需要的应用系统数据设置在Fact对象当中,这样规则就可以通过对Fact对象数据的读写实现对应用数据的读写操作。


Fact对象通常是一个具有getter和setter方法的POJO对象,通过getter和setter方法可以方便的实现对Fact对象的读写操作,所以我们可以简单的把 Fact 对象理解为规则与应用系统数据交互的桥梁或通道。

当Fact对象插入到WorkingMemory当中后,会与当前WorkingMemory当中所有的规则进行匹配,同时返回一个FactHandler对象。FactHandler对象是插入到WorkingMemory当中Fact对象的引用句柄,通过FactHandler对象可以实现对Fact对象的删除及修改等操作。


前面的实例中通过调用insert方法将Product对象插入到WorkingMemory当中,Product对象插入到规则中之后就是说为的FACT对象。如果需要插入多个FACT对象,多次调用insert方法,并传入对应FACT对象即可。


目录
相关文章
|
算法 IDE Java
《Drools7.0.0.Final规则引擎教程》第1章 Drools简介
《Drools7.0.0.Final规则引擎教程》第1章 Drools简介
1302 0
|
Python
Drools规则引擎Map使用案例
Drools规则引擎Map使用案例
829 0
Drools规则引擎Map使用案例
|
Java 编译器 API
《Drools7.0.0.Final规则引擎教程》第4章 4.5RHS语法
《Drools7.0.0.Final规则引擎教程》第4章 4.5RHS语法
248 0
《Drools7.0.0.Final规则引擎教程》第4章 4.5RHS语法
《Drools7.0.0.Final规则引擎教程》番外实例篇——activation-group的多FACT对象
《Drools7.0.0.Final规则引擎教程》番外实例篇——activation-group的多FACT对象
283 0
《Drools7.0.0.Final规则引擎教程》番外篇之ruleflow-group合并
《Drools7.0.0.Final规则引擎教程》番外篇之ruleflow-group合并
257 0
《Drools7.0.0.Final规则引擎教程》第4章 4.2 agenda-group
《Drools7.0.0.Final规则引擎教程》第4章 4.2 agenda-group
202 0
Drools规则引擎-如果Fact对象参数为null如何处理
Drools规则引擎-如果Fact对象参数为null如何处理
331 0
《Drools7.0.0.Final规则引擎教程》番外实例篇——相同对象and List使用
《Drools7.0.0.Final规则引擎教程》番外实例篇——相同对象and List使用
320 0
《Drools7.0.0.Final规则引擎教程》第4章 4.2 no-loop
《Drools7.0.0.Final规则引擎教程》第4章 4.2 no-loop
187 0
《Drools7.0.0.Final规则引擎教程》第4章 4.2 ruleflow-group&salience
《Drools7.0.0.Final规则引擎教程》第4章 4.2 ruleflow-group&salience
350 0