欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
JBoss Rules 學(xué)習(一): 什么是Rule

Rules

一條規則是對商業(yè)知識的編碼。一條規則有 attributes ,一個(gè) Left Hand Side LHS )和一個(gè) Right Hand Side RHS )。 Drools 允許下列幾種 attributes salience , agenda-group , no-loop , auto-focus , duration , activation-group 。

rule “ < name > ”    
    
< attribute >   < value >     
    when        
        
< LHS >     
    then        
        
< RHS >
end

規則的
LHS 由一個(gè)或多個(gè)條件( Conditions )組成。當所有的條件( Conditions )都滿(mǎn)足并為真時(shí), RHS 將被執行。 RHS 被稱(chēng)為結果( Consequence )。 LHS RHS 類(lèi)似于:
if  (  < LHS >  ) {
    
< RHS >
}

規則可以通過(guò) package 關(guān)鍵字同一個(gè)命名空間( namespace )相關(guān)聯(lián);其他的規則引擎可能稱(chēng)此為規則集( Rule Set )。一個(gè) package 聲明了 imports , global 變量, functions rules 。


package  com.sample

import  java.util.List
import  com.sample.Cheese

global List cheeses

function 
void  exampleFunction(Cheese cheese) {
    System.out.println( cheese );
}

rule “A Cheesy Rule”
    when
        cheese : Cheese( type 
==   " stilton "  )
    then
        exampleFunction( cheese );
        cheeses.add( cheese );
end

 

對新的數據和被修改的數據進(jìn)行規則的匹配稱(chēng)為模式匹配( Pattern Matching )。進(jìn)行匹配的引擎稱(chēng)為推理機( Inference Engine )。被訪(fǎng)問(wèn)的規則稱(chēng)為 ProductionMemory ,被推理機進(jìn)行匹配的數據稱(chēng)為 WorkingMemory 。 Agenda 管理被匹配規則的執行。推理機所采用的模式匹配算法有下列幾種: Linear , RETE , Treat , Leaps 。

Drools 采用了 RETE Leaps 的實(shí)現。 Drools RETE 實(shí)現被稱(chēng)為 ReteOO ,表示 Drools Rete 算法進(jìn)行了加強和優(yōu)化的實(shí)現。



一條規則的 LHS Conditional Element 和域約束( Field Constraints )。下面的例子顯示了對一個(gè) Cheese Fact 使用了字面域約束( Literal Field Constraint

rule  " Cheddar Cheese "
    when
        Cheese( type 
==   " cheddar "  )
    then
        System.out.println( 
" cheddar "  );
end

上面的這個(gè)例子類(lèi)似于:

public   void  cheddarCheese(Cheese cheese) {
    
if  ( cheese.getType().equals( " cheddar " ) {
        System.out.println( 
" cheddar "  );
    }
}
<!--[if !vml]--> <!--[endif]-->

規則引擎實(shí)現了數據同邏輯的完全解耦。規則并不能被直接調用,因為它們不是方法或函數,規則的激發(fā)是對 WorkingMemory 中數據變化的響應。結果( Consequence ,即 RHS )作為 LHS events 完全匹配的 Listener 。

rules 被加入 Productioin Memory 后, rules 被規則引擎用 RETE 算法分解成一個(gè)圖:



Facts assert 進(jìn)入 WorkingMemory 中后,規則引擎找到匹配的 ObjectTypeNode ,然后將此 Fact 傳播到下一個(gè)節點(diǎn)。 ObjectTypeNode 擁有一塊內存來(lái)保存所有匹配的 facts 。在我們的例子中,下一個(gè)節點(diǎn)是一個(gè)域約束( Field Constraint ), type = = “cheddar” 。如果某個(gè) Cheese 對象的類(lèi)型不是“ cheddar ”,這個(gè) fact 將不會(huì )被傳播到網(wǎng)絡(luò )的下一個(gè)節點(diǎn)。如果是“ cheddar ”類(lèi)型,它將被記錄到 AlphaNode 的內存中,并傳播到網(wǎng)絡(luò )的下一個(gè)節點(diǎn)。 AlphaNode 是古典 RETE 術(shù)語(yǔ),它是一個(gè)單輸入 / 單輸出的節點(diǎn)。最后通過(guò) AlphaNode fact 被傳播到 Terminal Node 。 Terminal Node 是最終節點(diǎn),到此我們說(shuō)這條規則被完全匹配,并準備激發(fā)。

當一條規則被完全匹配,它并沒(méi)有立刻被激發(fā)(在 RETE 中是這樣,但在 Leaps 中它會(huì )立刻被激發(fā))。這條規則和與其匹配的 facts 將激活被放入 Agenda ,由 Agenda 來(lái)負責安排激發(fā) Activations (指的是 rule + the matched facts )。

下面的圖很清楚的說(shuō)明了 Drools 規則引擎的執行過(guò)程:


數據被 assert 進(jìn) WorkingMemory 后,和 RuleBase 中的 rule 進(jìn)行匹配(確切的說(shuō)應該是 rule LHS ),如果匹配成功這條 rule 連同和它匹配的數據(此時(shí)就叫做 Activation )一起被放入 Agenda ,等待 Agenda 來(lái)負責安排激發(fā) Activation (其實(shí)就是執行 rule RHS ),上圖中的菱形部分就是在 Agenda 中來(lái)執行的, Agenda 就會(huì )根據沖突解決策略來(lái)安排 Activation 的執行順序。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
金融大數據 反欺詐平臺之規則引擎
drools規則引擎初探
Drools掃盲普及貼
JBoss Rules 學(xué)習(二): RETE算法
Drools語(yǔ)法詳解
在你的企業(yè)級java應用中使用Drools
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久