// 引入必要的库
import java.util.HashMap;
import java.util.Map;
// 定义一个简单的规则引擎框架示例
public class SimpleRuleEngine {
// 规则接口
public interface Rule {
boolean evaluate(Map<String, Object> facts);
void execute();
}
// 规则引擎类
public static class RuleEngine {
private Map<String, Rule> rules = new HashMap<>();
// 添加规则
public void addRule(String name, Rule rule) {
rules.put(name, rule);
}
// 执行所有匹配的规则
public void fireRules(Map<String, Object> facts) {
for (Rule rule : rules.values()) {
if (rule.evaluate(facts)) {
rule.execute();
}
}
}
}
// 示例规则实现
public static class DiscountRule implements Rule {
@Override
public boolean evaluate(Map<String, Object> facts) {
Integer amount = (Integer) facts.get("amount");
return amount != null && amount > 100;
}
@Override
public void execute() {
System.out.println("Apply discount!");
}
}
// 测试规则引擎
public static void main(String[] args) {
RuleEngine engine = new RuleEngine();
engine.addRule("DiscountRule", new DiscountRule());
Map<String, Object> facts = new HashMap<>();
facts.put("amount", 150); // 设置金额
engine.fireRules(facts); // 应用规则
}
}
evaluate
用于评估规则条件是否满足,execute
用于执行规则的动作。addRule
方法用于添加规则,fireRules
方法遍历所有规则并执行符合条件的规则。这个示例展示了如何构建一个简单的规则引擎框架,可以根据不同的条件执行不同的动作。
上一篇:java map 转对象
下一篇:java disruptor
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站