在计算运费时,处理太多案件的最简单方法是什么?

时间:2013-08-28 15:23:21

标签: algorithm

我正在建立一个允许卖家设定运费的系统。

卖家可以通过选择以下选项之一来设置1件商品的运费:

-0$ (no shipping fee)
-a fixed local shipping fee
-a fixed international shipping fee
-a flat local shipping fee
-a flat international shipping fee
-TBCL (to be calculated later)

买家有他/她自己的地址&每个订单可以购买许多物品(所有物品必须属于1个卖家)。 &安培;不同的商品可能有不同的运费选择。

可能会发生太多组合。例如,澳大利亚的买家从美国卖家那里购买许多物品(可能是0美元,固定或固定费用),

那么什么是最好的&最简单的方法来处理这种复杂性?

1 个答案:

答案 0 :(得分:2)

我相信GOF [1]的策略设计模式在这种情况下非常适合。

您可以使用ShippingFeeStrategy等方法定义calculateShipping(deliveryAddress)接口。然后,您将实现实现此接口的各种类(如NoShippingFeeStrategyFixedLocalShippingFeeStrategy),每个类都相应地实现calculateShipping()方法。

每个项目或卖家(根据您对系统建模的方式)都会有一个ShippingFeeStrategy的关联实例,在需要时会要求他们进行计算。

http://www.dofactory.com/javascript-strategy-pattern.aspx中可以找到类似的示例,它会根据所选的送货方式计算运费。

[1]:Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides - 设计模式:可重复使用的面向对象软件的元素(Addison-Wesley,ISBN:0-201-63361-2 )