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

前端之家收集整理的这篇文章主要介绍了java – 一种开发小型规则引擎的简单设计模式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

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

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

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

猜你在找的Java相关文章