java - Java中两个具有相同字段的类的面向对象设计

标签 java object code-analysis business-logic

我有两个类,名为 ShoppingCart 和 StoreInventory。这些用于便利店系统,涉及零售业务领域。

它们都包含“列表产品”字段。但是,只有 ShoppingCart 应该能够计算自己的列表中所有产品的总成本。此外,这两个对象是可疑的完全不同的对象,但具有相同的字段(附录:和方法,除了 ShoppingCart 可以计算其总值(value))。

通过接口(interface)和继承可以解决这个问题的最佳方法是什么?

最佳答案

以下是我对这个问题的理解,如有错误请指正。

您有一个库存类,并且可以在商店中出售的每件商品都保留为该类的实例。您还有购物车类(class)。购物车包含其包含的产品列表。购物车还可以计算其所有商品的总价。

如果这是真的,我有一些建议。

  • 我建议创建另一个类“item”来存储商店中的单个商品。这允许商店库存成为商品列表。商品可以包含价格字段,以及有关库存和供应商的潜在信息。
  • 我建议使用一个驱动程序类来处理购物车的创建/修改以及商店库存的修改,无论您决定如何处理它。甚至可以为客户(购物车)配备一名司机,为业主/员工(库存/元素)配备一名司机。

如果您确实想使用继承,您可以编写一个项目列表类,它将创建一个项目列表,并包含添加、删除、修改等方法。然后您可以将购物车和存储库存编写为它的子类,每个扩展项目列表,但也有自己的方法,例如购物车中的价格总和。如果您想为购物者和员工提供单独的商品类别,那么这将是一个坏主意。例如,购物者的信息包括购买的数量和价格,而员工的信息包括库存数量和供应商信息以及价格。在这种情况下,您将需要多个不同的项目类,并且继承将不再起作用。

关于java - Java中两个具有相同字段的类的面向对象设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23378067/

相关文章:

C语法分析器

java - Mongo hadoop mapreduce 显示错误

javascript - 向嵌套的 javascript 对象添加另一个值?

C# 调用图生成工具

c# - 代码分析,迷失在CA1709和CA1704之间

python - 如何将一个 Python 对象的所有属性复制到另一个对象?

java - php相当于jython?

java - log4j2 配置 XML 文件,用于 2 个日志文件,每次运行都有新文件夹

Java native 进程库

javascript - 如何在构造类数组时定义它?