我需要一些关于如何为这个简单的分类(?)示例建模的建议:
我有一个产品。一个产品可以有不同的类型,例如 ProductType 1、ProductType 2 和 ProductType 3。所有产品都有一个部件号和一个名称。它们的不同之处在于它们的价格计算方式。
- 类型 1 的产品价格取决于产品的数量。所以如果我有 5 个产品,价格是 $x。如果我有 20 个产品,价格是 $y,以此类推。
- 类型 2 的产品价格取决于每个产品的重量。如果重量为 5 公斤,则价格为 $x,以此类推。
- 类型 3 中的产品具有简单的价格,例如每件产品的价格为 $x。
在我看来,每个“价格结构”都需要有一个专用的表/类。然后,产品将参考其价格结构,具体取决于产品的类型。您是只创建一个“产品类型”表并在 Product 类上有一个名为 Type 的属性,还是使用泛化,因此 Product 1/2/3 是 Product 的子类型?将有 5 种不同的价格结构,并且价格的计算方式因每种类型而异。因此,计算订单总价的逻辑取决于每种产品类型。
你能给我一些关于如何以最佳方式建模的建议吗?如果我选择 Product 类上有一个 Type 属性的方法,我想我会在我的代码中得到很多 if-else 语句。如果我选择对它们进行子类化,每个类都可以负责计算正确的价格,或者它被要求做的任何事情。