java - 购物车的OO设计模式

标签 java design-patterns database-design object-oriented-analysis

我正在尝试学习 oo 设计模式并开发购物车应用程序,其中不同的购物车项目将具有不同的类型。每种类型都会有一些附加属性。

选项 1:是否可以为每个购物车项目创建一个单独的类,并在基类中拥有自己的属性和公共(public)属性。在此选项中,我将必须在数据库中创建多个类和相应的表层次结构。

选项 2:创建具有类型属性的单个购物车项目,该属性将标识属性的类型。在这种情况下,特定购物车项目的不相关属性将为空。

我知道这是一个非常基本的问题,但我想知道人们如何遵循最佳实践。

提前致谢。

最佳答案

我会为此使用策略,例如:

public interface CartItem{
  String getName();

  BigDecimal getPrice();
}

仅在您的购物车中使用此界面。这样,如果你想要一个新的购物车项目,只需让它实现这个接口(interface),它就可以工作:)

通过使用界面,您仍然可以完全自由地设计实际的购物车商品(具有 1 个类或多个类)

关于java - 购物车的OO设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25354966/

相关文章:

java - Component/JPanel repaint() 方法问题

database - 关于数据库,每个开发人员都应该了解什么?

database - 考虑部分依赖信息的关系数据库设计?

java - 创建 Android 应用程序时 Eclipse ADT 出错

java - 登录成功后重定向到原始页面返回原始数据而不是 URL 名称

python - Twisted中的EventListener机制

java - 提示: wrapping class in java in order to add new methods

java - 为什么当可观察对象作为新线程运行时观察者没有收到通知?

mysql - 如何构建数据库模式以允许 "1 in a million"情况?

java - 在 Solr 中使用有效负载获取分数