我需要使用C#编写业务规则引擎。基本的是它是商店的规则引擎。人们可以买到各种各样的东西。
规则示例:
*如果他们购买物品,我会寄送运单 *如果他们购买了CD,我将为特许权使用费支付创建版税单 *如果他们购买会员资格,我会激活它 *如果他们购买了一个名为“空手道”的视频,我会在顶部添加一个免费的“急救”视频。
我必须使它具有很大的可扩展性,因为许多(100多条规则)可能同时生效。
我的第一个想法是做出以下结论:
包含产品类型(例如书籍)和操作(将是类名称)
的表格然后,所有操作类都将使用强制“Run()”方法实现接口IAction。
然后您可以创建实现此接口的规则。
当购买产品时,该表将有一行或多行需要启动。然后工厂类将实例化此规则,并激活“运行”方法。
基本上,代码需要具有可扩展性,并且只需最少的维护即可处理高复杂性和可能的高变化率。我觉得会有比上面更聪明的方法。
所以我的问题是:解决这个问题的聪明方法是什么?