Подтвердить что ты не робот

Разница между активной записью и DAO?

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

4b9b3361

Ответ 1

Объект доступа к данным (DAO) относится к объекту вашего уровня данных, ответственному за сохранение отдельного объекта в вашем домене. Активная запись является гибридной, где класс, содержащий значения одной строки из таблицы, также отвечает за запросы, обновления, вставки и удаления в эту таблицу. Шаблон проектирования Active Record означает, что ваш объект имеет сопоставление "один к одному" с таблицей в вашей базе данных.

Ответ 2

A Объект доступа к данным (DAO) - это интерфейс, посвященный сохранению объекта модели/домена для источника данных, а не только любого объекта в слое данных. Здесь ссылка.

Шаблон ActiveRecord работает аналогичным образом, но ставит методы сохранения на сам объект модели, а DAO определяет дискретный интерфейс. Преимущество шаблона DAO:

  • Легко определить другой стиль персистентности, например, перемещение из базы данных в облако, без изменения основного импецментации, в то время как внешний интерфейс остается неизменным, поэтому не влияет на другие классы.

  • Проблемы сохранения сохраняются в модуле вдали от основных проблем, связанных с объектом модели.

Преимущество шаблона ActiveRecord - простота.