我正在建立一个允许卖家设定运费的系统。
卖家可以通过选择以下选项之一来设置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美元,固定或固定费用),
那么什么是最好的&最简单的方法来处理这种复杂性?
答案 0 :(得分:2)
我相信GOF [1]的策略设计模式在这种情况下非常适合。
您可以使用ShippingFeeStrategy
等方法定义calculateShipping(deliveryAddress)
接口。然后,您将实现实现此接口的各种类(如NoShippingFeeStrategy
和FixedLocalShippingFeeStrategy
),每个类都相应地实现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 )