存储库,数据映射器和数据访问对象是独立工作还是协同工作?

时间:2013-02-28 15:39:39

标签: design-patterns repository-pattern data-access-layer dao datamapper

在我看来,

  • 存储库的作用类似于集合对象,它根据条件输入返回或操作域对象列表。
  • 数据映射器充当数据库和域层之间的中间层,以隐藏持久性实现(例如SQL语句)。
  • 数据访问对象是整个持久层的通用接口。

我认为,因为数据访问对象的实施具有存储库,并且存储库的实现具有数据映射器,有时一个身份映射,使域对象独一无二,说它们协同工作是否正确?或者它们是完全不同的模式,彼此无法合作?

1 个答案:

答案 0 :(得分:1)

大多数时候,存储库属于Domain层,这是所有域对象(Entity)重构器。

数据映射器与DAO一起工作,它们都属于基础设施层,DAO是低级别持久性接口,只返回一些DTO(数据传输对象)

存储库应该使用DAO来重构我们具有多个DTO的域实体。

如果您质疑“说它们协同工作是否正确”,答案部分正确,因为Data Mapper是一种DAO

抱歉我的英语不好。