1

我正在开发一个 Java EE 6 应用程序,其中“供应商”应该能够为用户定义服务的价格和不同的折扣。有许多不同的提供者。每家提供相同的服务,定价模式可能不同。

价格模型: - 供应商应该能够定义价格,例如每小时、每分钟、每进程……。- 提供商应该能够轻松添加条件来定义用户获得的折扣。例如:特定用户组的用户获得 10% 的折扣,使用该服务超过 5 次的用户获得另一个折扣。- 它应该能够将条件与“AND”或“OR”等逻辑运算联系起来。- 可能条件的数量应由软件制造商定义。

  • 当用户尝试访问服务时,应显示用户特定的价格。使用该服务后,特定用户有时会收到一张发票​​,其中列出了该服务的总费用。在使用服务时,提供商可以更改定价模型,因此必须有版本号或其他东西。然后应将定价模型版本保存在数据库中。

问题是 - 使用规则引擎来解决这个规范是否可能和有意义?提供者应该在没有 xml 文件或类似文件的情况下定义条件,只需单击并选择即可。我没有使用规则引擎的经验......所以也许有人可以帮助我找出最适合这个问题的解决方案。

4

1 回答 1

0

首先,您需要了解所有可能的变量。你提到number of times someone has used a service, 和group membership。如果变量集可以改变,可能比你想象的要多。

接下来是必须支持的规则的复杂程度。您可能不需要成熟的规则引擎。您可以通过简单的表达式评估走得很远,例如,请参阅https://eval.dev.java.net 。

如果您进行表达式评估,那么只需将每个定价模型版本作为其自己的字符串存储在数据库或其他东西中。您可能需要点击式规则,但通常书面对应更清晰。

于 2010-04-23T19:54:12.533 回答