Изучая Java в школе, я хорошо знаком с шаблоном DAO (Объект доступа к данным). Однако на работе я использую .NET. В .NET часто говорят о DAL (уровень доступа к данным). Мне кажется, что их назначение очень похоже. Итак, вопрос в том, являются ли DAO и DAL в основном одним и тем же? Термин DAL создан только для того, чтобы его нельзя было спутать с объектами доступа к данным?
В чем разница между DAO и DAL?
Ответы (2)
Уровень доступа к данным (DAL) — это уровень системы, который существует между уровнем бизнес-логики и уровнем постоянства/хранения. DAL может быть одним классом или может состоять из нескольких объектов доступа к данным (DAO). У него может быть фасад, с которым может общаться бизнес-уровень, скрывающий сложность логики доступа к данным. Это может быть сторонний инструмент объектно-реляционного сопоставления (ORM), такой как Hibernate.
DAL — это архитектурный термин, DAO — это деталь дизайна.
Уровень доступа к данным будет содержать множество объектов доступа к данным.
Его основная роль состоит в том, чтобы отделить бизнес-логику от логики и реализации базы данных.
Например, DAL может иметь единственный метод, который будет извлекать данные из нескольких таблиц, запросов или хранимых процедур через один или несколько объектов доступа к данным.
Изменения в структуре базы данных, DAO, хранимых процедурах или даже типе базы данных не должны приводить к изменениям в бизнес-логике, и это сводится к отделению, обеспечиваемому DAL.