Любой из них будет работать ( из POEAA Фаулера ):
Архитектурные шаблоны источника данных:
- Шлюз табличных данных : Объект, который действует как шлюз к таблице базы данных.Один экземпляр обрабатывает все строки в таблице.
- Шлюз данных строк : Объект, который действует как шлюз для отдельной записи в источнике данных.В каждой строке по одному экземпляру.
- Активная запись : Объект, который упаковывает строку в таблицу или представление базы данных, инкапсулирует доступ к базе данных и добавляет логику домена.на этих данных.
- Data Mapper : Слой Mappers, который перемещает данные между объектами и базой данных, сохраняя их независимыми друг от друга и от самого Mapper.
Выбор зависит от того, какой из них вы выбрали (тот же источник):
Шаблоны логики домена:
- Сценарий транзакции: Организация бизнес-логики по процедурам, где каждая процедура обрабатывает один запрос из презентации
- Модель домена: Объектная модель домена, котораявключает в себя как поведение, так и данные
- Модуль таблицы: Один экземпляр, который обрабатывает бизнес-логику для всех строк в таблице или представлении базы данных.
- Уровень обслуживания: Defобъединяет границу приложения со слоем сервисов, который устанавливает набор доступных операций и координирует ответ приложения на каждую операцию.
В общем, чем ближе ваши бизнес-объекты напоминают схему БДи сфокусирован на операциях CRUD, тем проще может быть ваша модель Data Source Architectural и Doman Logic (хотя это и не обязательно).Если вы столкнулись с большим несоответствием импеданса или большим количеством бизнес-логики, не связанной напрямую с данными БД, то вы можете выбрать модель предметной области / преобразователь данных (а также включить ORM).