В чем разница между DAO и DAL?

Изучая Java в школе, я хорошо знаком с шаблоном DAO (Объект доступа к данным). Однако на работе я использую .NET. В .NET часто говорят о DAL (уровень доступа к данным). Мне кажется, что их назначение очень похоже. Итак, вопрос в том, являются ли DAO и DAL в основном одним и тем же? Термин DAL создан только для того, чтобы его нельзя было спутать с объектами доступа к данным?


person simoraman    schedule 06.07.2009    source источник
comment
Я всегда считал DAL уровнем абстракции данных.   -  person davidsleeps    schedule 06.07.2009


Ответы (2)


Уровень доступа к данным (DAL) — это уровень системы, который существует между уровнем бизнес-логики и уровнем постоянства/хранения. DAL может быть одним классом или может состоять из нескольких объектов доступа к данным (DAO). У него может быть фасад, с которым может общаться бизнес-уровень, скрывающий сложность логики доступа к данным. Это может быть сторонний инструмент объектно-реляционного сопоставления (ORM), такой как Hibernate.

DAL — это архитектурный термин, DAO — это деталь дизайна.

person Matt Howells    schedule 06.07.2009
comment
Допустим, у меня есть интерфейс под названием DAO с такими методами, как getCustomer(). Интерфейс реализован классом SqlServerDAO. Когда вызывается getCustomer(), SqlServerDAO извлекает данные из БД, создает и возвращает объект Customer. В этом случае DAL состоит из DAO-интерфейса и класса SqlServerDAO, верно? - person simoraman; 07.07.2009
comment
+1 для DAL — это архитектурный термин, DAO — это деталь дизайна. - person Salman Virk; 12.04.2013

Уровень доступа к данным будет содержать множество объектов доступа к данным.

Его основная роль состоит в том, чтобы отделить бизнес-логику от логики и реализации базы данных.

Например, DAL может иметь единственный метод, который будет извлекать данные из нескольких таблиц, запросов или хранимых процедур через один или несколько объектов доступа к данным.

Изменения в структуре базы данных, DAO, хранимых процедурах или даже типе базы данных не должны приводить к изменениям в бизнес-логике, и это сводится к отделению, обеспечиваемому DAL.

person ChrisBD    schedule 06.07.2009