Drools 函數學習

Drools 函數學習java

函數是定義在規則文件當中一代碼塊,做用是將在規則文件當中若干個規則都會用到的
業務操做封裝起來,實現業務代碼的複用,減小規則編寫的工做量。函數的編寫位置能夠是規則文件當中 package 聲明後的任何地方
具體語法以下:
function void/Object functionName(Type arg...) {
/*函數體的業務代碼*/
}
示例代碼:
import java.util.List;
import java.util.ArrayList;
/*
*一個測試函數
*用來向Customer對象當中添加指定數量的Order對象的函數
*/

function void setOrder(Customer customer,int orderSize) {
List ls=new ArrayList();
for(int i=0;i<orderSize;i++){
Order order=new Order();
ls.add(order);
}
customer.setOrders(ls);
}函數

 

調用方式:
1.函數寫在規則文件裏,規則文件直接調用
/*
測試規則
*/
rule "rule1"
when
$customer :Customer();
then
setOrder($customer,5);
System.out.println("rule 1 customer has order
size:"+$customer.getOrders().size());
end

/*
測試規則
*/
rule "rule2"
when
$customer :Customer();
then
setOrder($customer,10);
System.out.println("rule 2 customer has order size:"+$customer.getOrders().size());
end學習

2.使用java編寫函數,規則文件調用(須要引入相關類和函數)
java代碼:
package test;
public class RuleTools {
public static void printInfo(String name){
System.out.println("your name is :"+name);
}
}

規則文件代碼:
package test
import function test.RuleTools.printInfo; //引入函數所在

/*
測試規則
*/
rule "rule1"
when
eval(true);
then
printInfo("高傑");
end



測試

相關文章
相關標籤/搜索