微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

简单的工作报价系统的设计

如何解决简单的工作报价系统的设计

| 实现简单的报价系统以基于两个属性类型和值确定工作成本的最佳方法是什么? 作业成本将确定该类型值的范围。 例如: 作业类型A将花费 价值$ 0-150之间$ 80 价值150-300美元之间的100美元 价值> 300美元的120美元 作业类型B将花费 价值$ 0-120之间为$ 50 $ 100,价值在$ 120-250之间 $ 120,价值在$ 120-500之间 价值> 500美元的150美元 频段范围应该是可配置的,每种作业类型可以具有不同的频段范围。 范围和成本可能会发生变化,最终会存储在通过存储库模式访问的sql Server数据库中,因此我可以为TDD实现模拟存储库。 我最初的发展使我在下面的乐队中有一个轻量级课程
public class JobCostBand
{
    public int ID { get; set; }
    public string Type { get; set; }
    public float ValueLowerBand { get; set; }
    public float ValueUpperBand { get; set; }
    public float Cost { get; set; }
}
我有一个使用LINQ的模拟存储库,可以从这些对象的内存列表中进行选择,以返回成本。该类将足够容易地映射到sql表,由此我可以使用LINQ来在我的最终数据库存储库中查找成本。 我的问题是如何处理给定工作类型的最后一个波段。我开始使用上端频段的float.MaxValue,但感觉不太好。然后,我考虑使用一个较高或较低的值在JobCostClass中指定波段,但这又不合适。我是否对此考虑过多,还是错过了一种简单的建模方法?     

解决方法

您尝试做的工作是将输入值映射到乐队。您如何表示它是次要的事情。因此,您实际上应该专注于能够针对给定输入值返回正确波段的对象。 我坚持只代表每个
JobCostBand
的上限或下限。如果给定频段的上限值低于下一个频段的下限值,则对于上频段也应具有可为空的值。有一个'manager'对象,该对象保留频段的集合,并能够根据值查询它们并确定最合适的对象。我将它们存储在排序列表中(按较低的频带阈值排序),并依次遍历数组,直到频带匹配为止。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。