Bil*_*ill 16 design-patterns rules
我正在努力确定客户对零售环境中定价引擎的要求.我们已将定价引擎定义为根据一组定价规则进行操作,该定价规则基于购物车中已有的现有商品为购买商品建立新的价格点.
简单的价格规则可能是GET A SHIRT 40%OFF.一个更复杂的规则可能是当你买2条裤子并且花费至少30美元时获得免费衬衫.
应用这些规则的一般行业惯例似乎是客户的最终最优价格,但已经提出可能需要有排名选项以及堆叠选项.
排名将允许一个否则将失败的规则.堆叠将允许多个规则获胜.
我已经回顾了很多关于规则引擎的帖子,我需要帮助确定我是否应该将这些工具中的一个作为我设计的一部分,或者如果不是设计模式和算法可能适用于设计.
很明显,这可能是一个NP问题,我将要处理的项目(事实)数量可能超过每次交易100+,每次添加新项目时都需要重新定价.
Martin Fowler在Rules Engine上有一篇很好的文章以及在哪里使用它们.看看是否有帮助
http://www.martinfowler.com/bliki/RulesEngine.html
规则引擎非常合适。如果规则引擎可靠,适合架构/应用程序的其余部分,并且是应用程序的核心功能所需要的,那么就使用它。
如果规则引擎只是您应用程序的一小部分,甚至更糟:是一些代码,它与应用程序的其余部分不是相同的编程语言......那么您应该重新考虑。核心应用程序外部的每个应用程序部分(甚至数据库位于 Java 应用程序外部)都是风险。
那么有两种可能性:自己编写一个简单的规则引擎或使用策略或状态模式。