Сопоставитель данных против объекта доступа к данным. Разница. Какой из них лучше? [дубликат]


Возможный Дубликат:
Различия ORM/DAO/DataMapper/ActiveRecord/TableGateway?

Может ли кто-нибудь помочь мне понять разницу между отображателем данных и шаблонами объектов доступа к данным? Я уже знаю о шаблоне отображения данных из книги Зандстры. Но когда я искал объект доступа к данным, я обнаружил, что существуют очень похожие или даже одинаковые шаблоны. Также я хочу знать, какой из них я должен использовать при написании своей собственной структуры (я пытаюсь реализовать свой собственный фреймворк mvc php, просто чтобы узнать, как работают современные фреймворки).

Author: Community, 2012-09-04

1 answers

Сопоставитель данных сохраняет данные из (и восстанавливает) объекта домена напрямую, в то время как объект доступа к данным будет использоваться в качестве посредника для обмена информацией между объектом домена и абстракцией хранилища.

<update> Основное различие между двумя подходами заключается в том, что средство отображения данных временно берет под контроль объект домена, в то время как объект доступа к данным либо получает данные косвенно (через некоторую абстракцию более высокого уровня, например Сервис), либо управляемый (а в некоторых реализациях даже создаваемый) объектом домена.</update>

Ни один из шаблонов не имеет отдаленного отношения к активной записи (анти)шаблону, который сочетает логику домена и абстракцию хранилища в одном экземпляре, тем самым нарушая SRP.

И ни один из упомянутых шаблонов не привязан к ORMS. Некоторые ORM пытаются использовать вышеупомянутый шаблон для реализации, но обычно они делают это довольно плохо.

Большая часть того, что вы называете, "современные фреймворки" используют шаблон активной записи и называют его экземпляры "моделями", что является крайним упрощением концепции, увековеченной Rails.

 6
Author: tereško, 2014-08-12 11:36:33