Проще говоря, о реализации Data Data Gateway (TDG): вы создаете отдельный класс TDG, который содержит SQL для операций CRUD с конкретной таблицей.Таким образом, ваши модели взаимодействуют не напрямую с источником данных (например, с базой данных), а через эти абстрактные - классы TDG.Таким образом, это просто подход для создания другого уровня абстракции, и это просто оболочка для связи с базой данных - получать и изменять данные.ИМХО классы TDG не должны содержать членов, только методы.Вот хорошая схема, которая визуализирует использование TDG паттерна .При использовании подхода TDG SQL следует переместить из классов модели в классы источника данных (TDG).И все данные, которые я получаю из БД через классы TDG, хранятся в членах моей модели.
А как насчет реализации активной записи?Если бы я объединил доступ к данным и мой класс модели в один класс модели, я бы реализовал активную запись?Мне не удалось найти четкого различия или того, как эти шаблоны выглядят в PHP и отличаются друг от друга.
Часто у меня есть один класс одноэлементной базы данных, а затем отдельный класс модели для каждой таблицы базы данных.Каждый класс модели имеет CRUD + несколько пользовательских (count, avg и т. Д.) Операций.В некоторых классах есть члены для сохранения результатов CRUD или пользовательских операций - это делается при необходимости.Может ли этот подход быть идентифицирован как активная запись?Кроме того, если бы я переместил SQL из моих классов моделей в классы TDG, это был бы шлюз таблиц данных?