微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

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

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

原文地址:https://www.jb51.cc/java/437753.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐