Различия между ORM/DAO/DataMapper/ActiveRecord/TableGateway?

Можете ли вы объяснить мне различия между следующими представителями базы данных, скажем, в PHP.:

ORM DAO DataMapper ActiveRecord TableGateway

Любые примеры будут оценены.

Ответ 1

Это потребует довольно длинного ответа. Вместо того, чтобы повторять то, что другие сказали лучше и более подробно передо мной, я связываю вас с некоторыми релевантными страницами. Я предлагаю просмотреть их. Возможно, следуйте нескольким дополнительным ссылкам. Википедия всегда хорошее начало. Если у вас все еще есть вопросы по поводу одного или другого шаблона после прохождения ссылок, не стесняйтесь возвращаться к SO и снова спрашивать. Но если вы это сделаете, попробуйте сузить его. Лучше спросить несколько вопросов и сосредоточиться на конкретных аспектах, чем ожидать, что люди напишут вам эссе.

Объект Relational Mapper

Объектно-реляционное сопоставление (ORM, O/RM и O/R mapping) в компьютерном программном обеспечении представляет собой метод программирования для преобразования данных между системами несовместимого типа в реляционных базах данных и объектно-ориентированных языках программирования.

Объект доступа к данным

Использовать объект доступа к данным (DAO) для абстрактного и инкапсулировать весь доступ к источнику данных. DAO управляет соединением с источником данных для получения и хранения данных.

DataMapper

Уровень Mappers (473), который перемещает данные между объектами и базой данных, сохраняя их независимо друг от друга и самого транслятора.

Активная запись

Объект, который обертывает строку в таблице базы данных или представлении, инкапсулирует доступ к базе данных и добавляет логику домена к этим данным.

Table Data Gateway

Объект, который действует как шлюз (466) в таблицу базы данных. Один экземпляр обрабатывает все строки в таблице.