DTO и Entity. Могут ли дружить

Обсуждаем, как правильно строить приложения
Ответить
MaratCrash
Сообщения: 200
Зарегистрирован: 2011.03.02, 21:11

DTO и Entity. Могут ли дружить

Сообщение MaratCrash »

Всем привет.
Ситуация. Есть сущность, есть DTO. Есть фабрика. В метод фабрики инжектится DTO. На основе одного из свойств DTO создается тот или иной объект. Собственно вопрос: а правильно ли в классах DTO юзаться константы сущностей? Просто мне, для того чтобы понять, какую сущность создавать в фабрике необходимо опредлиться с тем, что прилетает в фабрику. Да, как вариант я могу проверять тип прилетаемого объекта. Но интересно мнение других разработчиков.
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: DTO и Entity. Могут ли дружить

Сообщение rugabarbo »

Проверять тип.

DTO ничего не знает о сущностях, он тупо таскает данные туда-сюда.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: DTO и Entity. Могут ли дружить

Сообщение zelenin »

dto в том контексте в котором мы обычно их употребляем (в качестве прослойки между реквестом и следующим слоем) не является понятием доменного или инфраструктурного кода. Фабрика же видимо у вас является частью домена?
В идеале это должно выглядеть так: прилетают данные в экшне, формируем dto, передаем в сервис, в сервисе на основе типа dto выбираем соответствующую фабрику, создаем сущность. Фабрика не принимает DTO, фабрика принимает ДАННЫЕ из DTO.
MaratCrash
Сообщения: 200
Зарегистрирован: 2011.03.02, 21:11

Re: DTO и Entity. Могут ли дружить

Сообщение MaratCrash »

zelenin писал(а): 2017.01.12, 19:46 dto в том контексте в котором мы обычно их употребляем (в качестве прослойки между реквестом и следующим слоем) не является понятием доменного или инфраструктурного кода. Фабрика же видимо у вас является частью домена?
В идеале это должно выглядеть так: прилетают данные в экшне, формируем dto, передаем в сервис, в сервисе на основе типа dto выбираем соответствующую фабрику, создаем сущность. Фабрика не принимает DTO, фабрика принимает ДАННЫЕ из DTO.
Так мы ведь с Вами в соседнем топике говорили про DTO и про то, что DTO - часть домена :) Хотя как по мне это не так. Помните пример с репозиторием, куда передают 10 параметров? Я об этом.

А по поводу проверки типа и прочего - спасибо.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: DTO и Entity. Могут ли дружить

Сообщение zelenin »

MaratCrash писал(а): 2017.01.13, 00:19Так мы ведь с Вами в соседнем топике говорили про DTO и про то, что DTO - часть домена
я не мог сказать, что DTO - часть домена. Я мог сказать, что DTO - общий паттерн, и может использоваться где угодно, но в контексте DDD обычно имеется в виду DTO слоев Presentation => Application.
Аналогично фабрика - в DDD обычно имеется в виду фабрика, создающая сущность в домене, но вообще фабрика - паттерн общего назначения, применяющийся везде в программировании.
Поэтому следует уточнять контекст использования данных терминов для устранения недопонимания (половина текста всех комментов в этой ветке посвящена именно этому).
MaratCrash писал(а): 2017.01.13, 00:19Помните пример с репозиторием, куда передают 10 параметров? Я об этом.
не помню
Ответить