Строительство доменного объекта из DTO - PullRequest
3 голосов
/ 12 января 2011

Давайте рассмотрим типичный сценарий веб-приложения

  1. Пользователь нажимает кнопку «создать приложение TEST», чтобы инициировать запрос на получение формы приложения TEST (в данном случае .aspx)
  2. До загрузки формы TEST

    a.Сервисный уровень запрашивает фабрику приложений TEST о создании объекта домена
    b.Фабрика инициализирует приложение # и другие вложенные объекты
    c.Фабрика возвращает объект домена
    d.Служба использует ассемблер для создания DTO и возврата на уровень представления

  3. Пользователь заполняет данные и отправляет форму заявления на тестирование
  4. Уровень представления создает DTO и отправляет егок уровню обслуживания

Вопросы

  1. Как система должна построить объект домена из dto после того, как пользователь отправит данные для проверки?
  2. Должны ли мыиспользовать фабрику или позволить mapper / ассемблеру создать объект Domain из DTO?
  3. Если мы используем mapper для создания объекта домена из dto, то это нарушает правило фабрики: (*
  4. Если мы используемфабрика еще раз не будет воссоздавать новый Application # для доменного объекта? повторно гидрировать объект домена из DTO, используя Assembler?

1 Ответ

3 голосов
/ 13 января 2011

Как система должна построить объект домена из dto после того, как пользователь отправит данные обратно для проверки?

Получив их из репозитория / постоянного хранилища.

Должны ли мы использовать фабрику или позволить mapper / ассемблеру создать объект Domain из DTO?

Ни того, ни другого.

Если мы используем mapper для создания объекта доменаиз dto затем он нарушает фабричное правило: (

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

Если мы снова используем фабрику, не воссоздадим новое Application # для доменаobject?

Вероятно, поэтому опять-таки фабрика не подходит для использования здесь.

У меня есть вопрос о вашем процессе здесь.Вы сказали:

До загрузки формы TEST

a.Сервисный уровень запрашивает фабрику приложений TEST создать объект домена

b.Фабрика инициализирует приложение # и другие вложенные объекты

c.Фабрика возвращает объект домена

d.Служба использует ассемблера для создания DTO и возврата на уровень представления

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

...