Разница между Active Record и DAO? - PullRequest
21 голосов
/ 10 июля 2011

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

Ответы [ 2 ]

19 голосов
/ 31 июля 2013

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

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

Преимущество шаблона DAO:

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

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

Преимущество шаблона ActiveRecord заключается в простоте.

19 голосов
/ 10 июля 2011

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

...