存储库和DAO设计模式之间的区别

dwi*_*wix 5 java dao design-patterns repository java-ee

我到处搜索,我仍然无法弄清楚存储库和DAO之间的区别.

假设我们有一个Product对象,所以对我来说它会是这样的:

class Product {
    public int id;
    public string name;
}

class ProductDAO {

    public void add(Product p) {//saving the product}
    public void delete(int id) {//deleting a product by id}
    public Product update(Product p) {//updating a product}
    public List<Product> listProducts() {//listing all products} 
}
Run Code Online (Sandbox Code Playgroud)

因此,在一个真实世界的项目中,每个实体应该与DAO类保持一对一的关系,并且根据我的阅读,一个存储库执行相同的工作,并且可以使用我在例如DAO,除了update方法?我不明白为什么,这是真的吗?

你能给我一个描述差异的小例子吗?

先感谢您.