Может ли DTO иметь методы экземпляра, возвращающие производные значения?
-
20-09-2019 - |
Вопрос
Приемлемо ли когда-либо для DTO иметь методы экземпляра, которые возвращают производные значения на основе данных DTO?Или DTO должны быть чистыми контейнерами данных без каких-либо дополнительных методов (кроме геттеров / сеттеров)?
Пурист во мне говорит, что бизнес-логике слишком легко внедриться в такие методы.Однако, если (например) DTO является общим для всех уровней приложения, то, возможно, есть аргумент в пользу наличия таких методов в DTO.
Каковы ваши взгляды на это?Существуют ли когда-нибудь ситуации, когда это приемлемо, или следует избегать подобных вещей?И почему / why not?
Решение
DTO не должны иметь поведения, они являются простыми контейнерами для транспортировки данных через границы процесса и должны состоять только из установщиков / получателей.
Этого следует избегать любой ценой, иначе это было бы истолковано как неправильное применение шаблона DTO.