В чем разница между DAO и Data Mapper

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


person blockhead    schedule 29.01.2009    source источник
comment
Не могли бы вы также пометить эти шаблоны?   -  person David Grant    schedule 29.01.2009


Ответы (1)


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

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

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

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

person Anton Gogolev    schedule 29.01.2009