繁体   English   中英

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

[英]Objects Oriented Design for Two Classes with the same Fields in Java

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

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

通过接口和继承可以解决的最佳方法是什么?

这是我对问题的理解,如果我错了,请纠正我。

您有一个库存类,并且可以在商店中出售的每个商品都作为该类的一个实例保留。 您也有一个购物车课程。 购物车包含其包含的产品列表。 购物车还可以计算其所有项目的组合价格。

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

  • 我建议创建另一个类“项目”以在商店中存储单个项目。 这使商店库存成为项目清单。 项目可以具有价格字段,以及有关库存和供应商的潜在信息。
  • 我建议使用驱动程序类来处理购物车的创建/修改和商店库存的修改,但是您决定处理它。 甚至一位顾客(购物车)和一位老板/雇员(库存/物品)的司机甚至是有意义的。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM