java中fact方法是什么意思_【java規則引擎】《Drools7.0.0.Final規則引擎教程》第3章 3.2 KIE概念&FACT對象...

轉載:https://blog.csdn.net/wo541075754/article/details/74943236

3.2.1 什么是KIE

KIE(Knowledge Is Everything),知識就是一切的簡稱。JBoss一系列項目的總稱,在《Drools使用概述》章節已經介紹了KIE包含的大部分項目。它們之間有一定的關聯,通用一些API。比如涉及到構建(building)、部署(deploying)和加載(loading)等方面都會以KIE作為前綴來表示這些是通用的API。

下圖為KIE所包含的子項目結構圖:

bd2dba458116854278baa5256fa58005.png

3.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對象即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值