0

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

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

-0$(无运费)
- 固定的本地运费
- 固定的国际运费
- 统一的本地运费
- 统一的国际运费
-TBCL(稍后计算)

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

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

那么处理这种复杂性的最佳和最简单的方法是什么?

4

1 回答 1

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)

于 2013-08-28T15:48:34.163 回答