簡體   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