// Java 规则引擎示例代码
import java.util.ArrayList;
import java.util.List;
// 定义一个规则接口
interface Rule {
boolean evaluate(Context context);
}
// 上下文类,用于存储规则评估所需的数据
class Context {
private int value;
public Context(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
// 示例规则实现
class GreaterThanRule implements Rule {
private int threshold;
public GreaterThanRule(int threshold) {
this.threshold = threshold;
}
@Override
public boolean evaluate(Context context) {
return context.getValue() > threshold;
}
}
// 规则引擎类
class RuleEngine {
private List<Rule> rules = new ArrayList<>();
public void addRule(Rule rule) {
rules.add(rule);
}
public boolean evaluateAllRules(Context context) {
for (Rule rule : rules) {
if (!rule.evaluate(context)) {
return false;
}
}
return true;
}
}
// 测试规则引擎
public class RuleEngineTest {
public static void main(String[] args) {
// 创建规则引擎实例
RuleEngine engine = new RuleEngine();
// 添加规则
engine.addRule(new GreaterThanRule(10));
// 创建上下文并设置值
Context context = new Context(15);
// 评估所有规则
boolean result = engine.evaluateAllRules(context);
// 输出结果
System.out.println("All rules evaluated: " + result);
}
}
evaluate
方法,所有具体的规则都需要实现这个方法。value
。Rule
接口,并在 evaluate
方法中检查上下文中的值是否大于某个阈值。evaluateAllRules
方法来评估所有规则。如果所有规则都返回 true
,则最终结果为 true
;否则为 false
。通过这个简单的示例,你可以看到如何使用 Java 实现一个基本的规则引擎。
下一篇:java排序
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站