В чем разница между объектом доступа к данным и активной записью? Они кажутся совершенно такими же, как и построили слой между слоем приложения и персистентности и абстрагируют прямой доступ к базе данных с помощью SQL-запросов.
Разница между активной записью и DAO?
Ответ 1
Объект доступа к данным (DAO) относится к объекту вашего уровня данных, ответственному за сохранение отдельного объекта в вашем домене. Активная запись является гибридной, где класс, содержащий значения одной строки из таблицы, также отвечает за запросы, обновления, вставки и удаления в эту таблицу. Шаблон проектирования Active Record означает, что ваш объект имеет сопоставление "один к одному" с таблицей в вашей базе данных.
Ответ 2
A Объект доступа к данным (DAO) - это интерфейс, посвященный сохранению объекта модели/домена для источника данных, а не только любого объекта в слое данных. Здесь ссылка.
Шаблон ActiveRecord работает аналогичным образом, но ставит методы сохранения на сам объект модели, а DAO определяет дискретный интерфейс. Преимущество шаблона DAO:
-
Легко определить другой стиль персистентности, например, перемещение из базы данных в облако, без изменения основного импецментации, в то время как внешний интерфейс остается неизменным, поэтому не влияет на другие классы.
-
Проблемы сохранения сохраняются в модуле вдали от основных проблем, связанных с объектом модели.
Преимущество шаблона ActiveRecord - простота.