java – 一种开发小型规则引擎的简单设计模式

我有一个要求,它需要对java值对象进行大量验证并生成结果. (我们不能使用我们公司的任何规则引擎应用程序,许多手续和许多问题需要回答).
因此,我建议实现一个简单和可扩展的小规则引擎,而不是像在java代码中那样实现规则.
要遵循哪种设计模式?

我在下面添加一个粗略的xml结构,定义了规则.

  irstName" rhs="null" operator="!="/>
        
最佳答案
这实际上取决于您尝试实施的规则的复杂性.声明性编程的关键思想是将规则视为数据.因此,最简单的方法是查看是否所有规则都可以表示为表中的数据.例如,如果你的规则是a = 10的类型,那么b = 7,那么你可以在表中表示相同的规则,并编写一个可以处理所有情况的通用方法.

另一方面,如果您的规则允许多个条件(和/或子句以及比较运算符),则基于表的设计将无济于事.

在这种情况下,您需要为规则指定语法,生成词法分析器和解析器.解析器会将您的实际规则解析为抽象语法树.进入该阶段后,您可以获取该树并将其定位到现有规则引擎或您自己的知道如何执行树的规则引擎.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...