计算价格的业务规则

0 投票
1 回答
525 浏览
提问于 2025-04-15 11:12

我所在的公司是一家在线零售商,我现在正在做一个项目,主要是计算客户购买产品的价格。我们可能会创建一个服务,大概长这样...

public interface IPriceService
{
  decimal CalculateCustomerPrice(ISupplierPriceProvider product);
}

public interface ISupplierPriceProvider
{
    decimal SupplierPrice { get; }
    string Currency { get; }
}

别担心,实际的样子不会完全一样,但你能理解大概意思。在我们这个服务的实现中,会有很多规则来计算价格,这些规则可能会经常变动。我们可能想在未来某个时候创建一种专门的语言来处理这些规则。不过现在,我们还不太确定销售部门会提出什么样的变动,所以我在考虑托管一个动态语言运行时(DLR),并使用Iron Python或Iron Ruby的脚本文件来处理很多价格计算的逻辑。这样,我们就能快速更新价格计算的规则,同时也能了解业务人员需要什么样的专门语言。你觉得这个主意靠谱吗?有没有人能分享一些关于如何托管DLR,以及让脚本文件与CLR对象互动并返回值的链接、文章或教程?

1 个回答

1

我觉得这个主意听起来很不错。你可以很简单地通过IronPython访问CLR内部的内容(比如对象和返回值),不过我对IronRuby就不太清楚了。《IronPython in Action》的第一章和第七章可以在网上找到,应该会对你有帮助。另外,在learning python博客上还有一个“你好,世界”的风格的教程。

撰写回答