Модуль таблицы по сравнению с моделью предметной области

1 ответ

Лучшая ссылка является "Шаблонами Архитектуры приложений для предприятия" Martin Fowler:

Вот выборка от раздела по Модулю Таблицы:

А Модуль Таблицы организует доменную логику с одним классом на таблицу в базе данных, и единственный экземпляр класса содержит различные процедуры, которые будут действовать на данные. Основное различие с Модель предметной области - то, что, если у Вас есть много заказов, , Модель предметной области будет иметь один объект порядка на порядок, в то время как Модуль Таблицы будет иметь один объект обработать все заказы.

Модуль Таблицы был бы особенно полезен в гибкой архитектуре базы данных, которую Вы описали для своих данных профиля пользователя, в основном Значение атрибута объекта дизайн.

Как правило, при использовании Модели предметной области каждая строка в базовой таблице становится одним экземпляром объекта. Так как Вы храните информацию профиля пользователя в нескольких строках, затем Вы заканчиваете тем, что имели необходимость создать много объектов Модели предметной области, тогда как то, что Вы действительно хотите, является одним объектом, который инкапсулирует все свойства пользователя.

Вместо этого Модуль Таблицы помогает Вам кодировать логику, которая относится к нескольким строкам в базовой таблице базы данных. При создании профиля для данного пользователя Вы указали бы все те свойства, и класс Модуля Таблицы будет иметь код для перевода этого в серию INSERT операторы, одна строка на свойство.

$table->setUserProfile( $userid, array('firstname'=>'Kevin', 'lastname'=>'Loney') );

Аналогично, запрашивая профиль данного пользователя использовал бы Модуль Таблицы для отображения нескольких строк набора результата запроса к элементам объекта.

$hashArray = $table->getUserProfile( $userid );
34
ответ дан Bill Karwin 29 November 2019 в 05:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: