我需要一些关于解决这个问题的最佳方法的建议。
我研究了 DROOLS、Java Rule Engine 和其他一些。所有这些都很强大,并且有它们的优点。我不知道哪个(如果有的话)对我来说是最好的选择。
我有一个业务对象。(简化为演示)
Person
firstName:String
lastName:String
departMent:String
hireDate:Date
我需要在 Web 应用程序中编写一个编辑器,以允许围绕这些字段构建复杂的规则。我需要支持复杂的嵌套 AND/OR 逻辑。我只需要基本的运算符,规则应该简单地评估为真或假。如果规则评估为真或假,将分别发生一个动作。
例如,
firstName CONTAINS "value" AND (lastName EQUALS "input" OR department CONTAINS "input")
我曾想过,也许我应该编写自己的解析器并在自己的代码中评估逻辑。我不知道该怎么做,任何建议或要阅读的东西的链接将不胜感激。有没有我可以研究的特定设计模式?
你将如何解决这个问题?关于规则引擎的一个保留意见是,它们可能对于一个简单的问题来说太复杂了?