加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 19:12:59 所属栏目:Java 来源:网络整理
导读:我有一个要求,它需要对java值对象进行大量验证并生成结果. (我们不能使用我们公司的任何规则引擎应用程序,许多手续和许多问题需要回答). 因此,我建议实现一个简单和可扩展的小规则引擎,而不是像在java代码中那样实现规则. 要遵循哪种设计模式? 我在下面添加

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读