代码之家  ›  专栏  ›  技术社区  ›  Patrik Hägne

计算价格的业务规则

  •  0
  • Patrik Hägne  · 技术社区  · 16 年前

    我所从事的业务是一家在线零售商,我目前正在从事一个项目,其中包括计算产品的客户价格。我们可能会创建一个看起来像…

    public interface IPriceService
    {
      decimal CalculateCustomerPrice(ISupplierPriceProvider product);
    }
    
    public interface ISupplierPriceProvider
    {
        decimal SupplierPrice { get; }
        string Currency { get; }
    }
    

    别担心,它看起来不会完全像那样,但你知道一般的想法。在我们实现此服务时,将有许多计算此价格的规则,这些规则可能会经常更改,我们可能希望在接下来的某个时间为这些规则创建某种DSL。目前,虽然我们还不太确定销售部门会要求什么样的更改,所以我正在考虑托管DLR,并拥有一个包含大量价格计算的Iron python或Iron ruby脚本文件。这样我们就可以快速更新价格计算规则,并了解业务人员需要哪种类型的DSL。这听起来像是一个明智的想法吗?是否有人有任何关于如何托管DLR和让脚本文件与CLR对象交互并返回值的链接文章/教程?

    1 回复  |  直到 16 年前
        1
  •  1
  •   Rick Copeland    16 年前

    对我来说,这绝对是一个明智的想法。您可以从Ironpython访问clr内部(对象和返回值),我不知道IronRuby。第1章和第7章 IronPython in Action 在线提供,可能会有所帮助。还有一个“Hello World”风格的教程可在 learning python 博客。