我工作的企业是一家在线零售商,我目前正在从事一个项目,其中包括计算产品的客户价格。我们可能会创建一个看起来像...的服务
public interface IPriceService
{
decimal CalculateCustomerPrice(ISupplierPriceProvider product);
}
public interface ISupplierPriceProvider
{
decimal SupplierPrice { get; }
string Currency { get; }
}
不用担心它看起来不会完全一样,但是您会明白总体思路。在我们实施这项服务的过程中,将有许多计算这个价格的规则,这些规则可以经常改变,我们可能想要做的是为这些规则创建某种 DSL。目前,虽然我们不太确定销售部门等实际会要求进行哪些更改,所以我正在考虑托管 DLR 并拥有一个包含大量价格计算的 Iron Python 或 Iron Ruby 脚本文件。通过这种方式,我们可以快速更新价格计算规则,也可以了解业务人员需要什么类型的 DSL。