我正在尝试学习oo设计模式和开发购物车应用程序,其中不同的购物车项目将具有不同的类型。每种类型都会有一些额外的属性。
选项1:使用基类中具有自己的属性和公共属性的每个购物车项目创建单独的类是否合适。在此选项中,我将不得不在数据库中创建多个类和相应的表层次结构。
选项2:创建具有type属性的单个购物车项目,该属性将标识属性的类型。在这种情况下,特定购物车项目的不相关属性将为空。
我知道这是一个非常基本的问题,但我想知道人们如何遵循最佳做法。
提前致谢。
答案 0 :(得分:1)
在我看来,当您的应用程序必须处理新事物供人们购买时,您不想编写新代码。因此,当有新物品需要购买时,新课程的设计很差。
答案 1 :(得分:1)
我会使用策略,例如:
public interface CartItem{
String getName();
BigDecimal getPrice();
}
仅在购物车中使用此界面。这样,如果你想要一个新的购物车项目,只需让它实现这个界面,它将工作:)
通过使用界面,您仍然可以完全自由地设计实际的购物车项目(有1个班级或多个班级)