在這裏,我們有:DAO持久性:只有一種方法來存儲複雜的數據對象?
public final class Product {
Integer productId;
String description;
...
public Product(final Integer productId, final String descripcion, ...) {
this.product_id = productId;
this.description = description;
...
}
public Integer getProductId() { ... }
public String getDescription() {...}
...
}
一則:
public final ProductDetails {
Integer productId;
String serialNumber;
...
public ProductDatails(final Integer productId, final serialNumber, ...){ ... }
public Intger getProductId() { ... }
public String getSerialNumber { ... }
...
}
因此,爲了建立其持續兩個類包含的數據DAO,問題是,如果它是一個很好的做法做如下:
public Interface IProductDAO {
public void saveProduct(final Product product);
public void saveProductDetails(final ProductDetails productDetails);
}
或:
public Interface IProductDAO {
public void saveProduct(final Product product, final ProductDetails productDetails);
我一直在服用考慮到兩個類重構爲一個如下:
public final class Product {
Integer productId;
String description;
ProductDetails productDetails;
...
public Product(final productId productId, final String description, final ProductDetails productDetails,...) {
if(productId!=productDetails.getProductId())
throw new IllegalArgumentException("ProductID is not the same");
...
}
}
所以:
public Interface IProductDAO {
public void saveProduct(final Product product);
}
我想知道哪一個是最根據最佳軟件開發實踐的'自然'方法。如果還有其他方法,他們也會受到歡迎。
我喜歡你的最後一個。 ProductDetails成爲產品的一部分似乎是合乎邏輯的。 – jrahhali