官术网_书友最值得收藏!

1.5.2 事實對象

事實對象(fact)是Drools用來評估條件和執行結果的模型對象,也稱為事實數據。

?事實對象可以簡單地理解為Java的POJO類(Plain Old Java Object)。

?事實對象可以有自己的函數,提供給規則引擎在“那么”的部分調用。

?事實對象可以從數據庫中加載。

?事實對象不需要繼承任何類或實現某些接口。

Drools要求這些事實對象必須遵從Java Beans的規范。事實對象根據其產生方式可以分為以下兩種類型。

?Stated fact(陳述事實對象):規則調用者提供給規則的事實對象。

?Inferred fact(推斷事實對象):規則引擎根據調用者提供的陳述事實通過計算推導出的事實對象,推斷事實可能會隨著時間的變化而改變。

比如,在一個商品促銷的場景下,我們要根據顧客的會員級別和購買金額計算出顧客此次購物的折扣率,顧客的會員級別和此次購買金額是陳述事實,而根據會員級別和購買金額計算出的折扣率就是推斷事實。

Drools規則引擎用規則中的“如果”部分進行規則觸發條件的判斷,判斷的依據就是事實對象。這些事實對象既可以是陳述事實,也可以是推斷事實。如果滿足觸發條件,則觸發規則(觸發規則的“那么”部分)。規則通常會在“那么”部分對既有的事實數據進行更新/刪除操作或產生新的事實數據,這些變動過的事實數據會再次引起規則引擎的條件判斷而觸發其他規則。因此規則不是被調用者直接觸發的,而是由Drools的決策引擎觸發的。

主站蜘蛛池模板: 任丘市| 巴林右旗| 乃东县| 南涧| 大石桥市| 大方县| 中牟县| 道孚县| 游戏| 英吉沙县| 台湾省| 泾阳县| 龙胜| 张家界市| 大同县| 满洲里市| 两当县| 无棣县| 舞钢市| 汪清县| 合川市| 尖扎县| 昌乐县| 太谷县| 邓州市| 右玉县| 萍乡市| 富民县| 潜山县| 凌云县| 余姚市| 商河县| 沐川县| 大方县| 十堰市| 南漳县| 昌乐县| 吉水县| 松江区| 四子王旗| 洪洞县|