私は 2 つのクラスを持っています。最初のクラスが呼び出されProduct
、基本的にデータベースからロードされたすべての利用可能な製品とその属性を保持します。もう 1 つのクラスは と呼ばれOrderProduct
、拡張Product
され、さらに 2 つの属性 (数量と日付) を持ちます。OrderProduct は、現在の注文に関する情報を保持する一時オブジェクトとして使用されます。注文の最後に、注文オブジェクトがデータベースに保存されます。私の質問: 現在の構造に従うべきですか、それとも OrderProduct が Product クラスを拡張せず、特定の製品にアクセスするための ID を保持し、数量と日付の 2 つの追加属性を持つように設計する必要がありますか? または、それを行うより良い方法はありますか?
製品:
package domainLayer;
public class Product {
private int id;
private String name;
private String description;
private String type;
private int price;
private String status;
public Product(int id, String name, int price, String type, String description, String status) {
this.id = id;
this.name = name;
this.description = description;
this.price = price;
this.status = status;
}
public Product(Product product){
this.id = product.getId();
this.name = product.getName();
this.description = product.getDescription();
this.price = product.getPrice();
this.status = product.getStatus();
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setDescription(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
public void setType(String type) {
this.type = type;
}
public String getType() {
return type;
}
public void setPrice(int price) {
this.price = price;
}
public int getPrice() {
return price;
}
public void setStatus(String status) {
this.status = status;
}
public String getStatus() {
return status;
}
}
注文商品:
package domainLayer;
import java.util.Date;
public class OrderProduct extends Product {
private int quantity;
private Date date;
public OrderProduct(int id, String name, int price, String type, String description, String status, int quantity, Date date) {
super(id, name, price, type, description, status);
this.quantity = quantity;
this.date = date;
}
public OrderProduct(Product product, int quantity, Date date){
super(product);
this.quantity = quantity;
this.date = date;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public int getQuantity() {
return quantity;
}
public void addQuantity(int quantity){
this.quantity += quantity;
}
public void setDate(Date date) {
this.date = date;
}
public Date getDate() {
return date;
}
}