16

我正在尝试确定客户对零售环境中定价引擎的要求。我们将定价引擎定义为在一组定价规则上运行,该规则根据购物车中已有的现有商品为购买的商品建立新的价格点。

一个简单的价格规则可能是GET A SHIRT 40% OFF。一个更复杂的规则可能是当您购买 2 条裤子并花费至少 30 美元时获得一件免费衬衫

应用这些规则的一般行业惯例似乎是对客户的最终最优价格,但已经提出可能需要有一个排名选项以及一个堆叠选项。

排名将允许否则会失败的规则获胜。堆叠将允许多个规则获胜。

我已经在 SO 上查看了许多关于规则引擎的帖子,我需要帮助确定我是否应该将这些工具之一作为我的设计的一部分,或者是否应该将哪些设计模式和算法适用于设计。

很明显,这可能是一个 NP 问题,我将处理的项目(事实)数量可能超过每笔交易 100+,每次添加新项目时都需要重新定价。

4

2 回答 2

5

Martin Fowler 有一篇关于规则引擎以及在何处使用它们的好文章。看看有没有帮助

http://www.martinfowler.com/bliki/RulesEngine.html

于 2009-02-21T03:06:24.327 回答
2

规则引擎非常适合。如果规则引擎是可靠的,适合您的架构/应用程序的其余部分并且是您应用程序的核心功能所需要的,那么就选择它。

如果规则引擎只是您应用程序的一小部分,或者更糟糕的是:是一些代码,与您应用程序的其余部分不同的编程语言......那么您应该重新考虑。核心应用程序外部的每个应用程序部分(甚至数据库在 Java 应用程序的外部)都是一种风险。

那么有两种可能:自己编写一个简单的规则引擎,或者使用策略或状态模式。

于 2009-02-20T22:33:50.037 回答