16.3. DRL 中的功能

DRL 文件中的功能将语义代码放在规则源文件中,而不是在 Java 类中。如果规则中的某个部分被重复使用并且每个规则的参数不同,则功能特别有用。在 DRL 文件中的规则上方,您可以声明函数或导入帮助程序类的静态方法作为功能,然后在规则的操作( then )部分中按名称使用函数(then)。

以下示例演示了在 DRL 文件中声明或导入的功能:

带有规则(选项 1)的功能声明示例

function String hello(String applicantName) {
    return "Hello " + applicantName + "!";
}

rule "Using a function"
  when
    // Empty
  then
    System.out.println( hello( "James" ) );
end

使用规则导入功能示例(选项 2)

import function my.package.applicant.hello;

rule "Using a function"
  when
    // Empty
  then
    System.out.println( hello( "James" ) );
end