В чем разница между DAO и Data Mapper - PullRequest
4 голосов
/ 29 января 2009

Есть ли разница между шаблоном DAO и шаблоном Data Mapper? Является ли DAO одним из разработчиков Mapper?

1 Ответ

7 голосов
/ 29 января 2009

Я бы на самом деле не назвал DAO "шаблоном". На мой взгляд, DAO - это практически объект доступа к данным, который включает в себя детали доступа к постоянному хранилищу данных и, вообще говоря, не имеет никакого отношения к базе данных:

interface IBlogDaoService
{
    Blog GetBlog(long id);
    void SaveBlog(Blog blog);
}

Понятно, что реализации могут использовать либо БД (в этом случае вполне логично использовать Data Mapper), либо простой механизм хранения файлов XML.

С другой стороны, Data Mapper - это скорее шаблон, который определяет слой, отвечающий за перевод графов объектов в памяти в реляционную структуру.

...