请教一个对象设计的问题
先说一下需求,一个订单(SalesOrder)由一些明细项(SalesOrderItem)组成,每个明细项对应一种商品(Commodity),这种商品在不同的时间段有不同的优惠政策(SellingStrategy)。在这里,SellingStrategy主要针对的是商品。但是,在一些重大的节假日,商家为了促销,可能在这些基础上推出一些对整个单据的优惠,如满1000立减100等策略(SellingStrategy)。这些销售策略有些可以共存,有些则是竞争,比方说有一条策略是这样的:X品牌的纸巾在每月一到三号期间打9折;另外一条则是每周六、周日两天,属于生活用品的所有商品全部打8.5折;还有一条规则是,国庆长假期间所有商品消费满100元返现10元。这三条规则既有共存,也有竞争关系。首先,第一条与第二条规则存在竞争关系,即两者只能满足其中一条优惠;其次,第一、第二分别与第三条存在共存关系,即只要购买的商品总额达到100元则返现10元。
那么类似于这样的需求,怎么设计这些对象?
SalesOrder 销售订单
SalesOrderItem 销售订单明细项
Commodity 所销售的商品
SellingStrategy 销售策略