首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >领域建模帮助-产品和供应商

领域建模帮助-产品和供应商
EN

Stack Overflow用户
提问于 2009-09-28 03:08:34
回答 1查看 83关注 0票数 1

我有这个域模型(简化的),它表示具有基本价格的产品,并附加了许多供应商,这些供应商提供相对于基本价格的特定折扣百分比:

代码语言:javascript
复制
public class CarDerivative
{
    public string Name { get; set; } e.g. StackOverflow Supercar 3.0L Petrol
    public double BasicPrice { get; set; } e.g. 10,000
    public double Delivery { get; set; } e.g. 500
    public IList<SupplierDiscount> { get; set; } // has 3 various suppliers
}

public class SupplierDiscount
{
    public string SupplierName; { get; set; }
    //public SupplierInformation SupplierDetails { get; set; } // maybe later
    public double BasicDiscount { get; set; } 
    public double DeliveryDiscount { get; set; } // e.g. 0.10 = 10%
}

现在,我在想,这些东西应该放在哪里做这些事情:

例如,BasicDiscountedPrice (稳定公式)的最佳位置是什么,它是否应该理想地位于通过构造函数注入提供对父CarDerivative的引用的SupplierDiscount上?

在你看来,一个不稳定的公式应该放在哪里?比如SupplierPriceForDerivative (基础+交付+税务+++)?

EN

回答 1

Stack Overflow用户

发布于 2009-09-28 11:45:00

我对此的下意识反应是,折扣应该是政策。每个DiscountPolicy可能如下所示:

代码语言:javascript
复制
public interface IDiscountPolicy
{
    decimal GetDiscountedPrice(CarDerivative car);
}

您的SupplierDiscount可能是这种策略的简单实现,而不稳定的公式可能是在更复杂的类中实现的。

我认为最安全的做法是将实体和策略分开,这样您就可以彼此独立地改变它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1485224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档