DTO: несколько DTO (и ассемблеров) для одного ресурса - PullRequest
3 голосов
/ 23 января 2010

Мне часто требуется, в зависимости от случая, несколько DTO для одного и того же ресурса.

Возьмите пример фотоальбомов. В зависимости от того, что я хочу отобразить, мне понадобятся разные данные в моих DTO (создание через форму, список, детали и т. Д.).

У меня будет albumFormDTO для создания альбома, коллекция albumDTO для списка альбомов и albumDetailDTO для подробного альбома.

Для каждого мне нужен определенный ассемблер. Кажется, это действительно тяжело.

Кажется ли это глупо?

Спасибо, Кья Бенджамин.

Ответы [ 2 ]

1 голос
/ 23 сентября 2010

Нет, не звучит глупо.

Альтернативой тому, что вы предложили, является создание «super-dto», которое используется для нескольких целей. и в котором только некоторые поля используются для каждой цели.

Это быстро становится уродливым и неприемлемым, так как dto становится большим и становится неясно, какие поля необходимы для каких целей. Трудно провести рефакторинг и понять его.

0 голосов
/ 24 июня 2011

Чтобы облегчить создание ассемблеров для каждого DTO, вы можете использовать библиотеку отображения объектов, такую ​​как ModelMapper , чтобы сделать большинство или все это автоматически для вас.

http://modelmapper.org

...