Я создаю довольно большое приложение, которое использует шаблон проектирования DAO / DTO для получения данных из базы данных.В приложении конкретный DTO стал «базовой структурой данных», так как на него ссылаются во всем проекте.Мне интересно, будет ли хорошей практикой так глубоко интегрировать этот DTO в проект, или мне нужен какой-то слой преобразования, где я конвертирую DTO в объекты не-DTO?
Я могу видетьпричины за и против того, чтобы этот слой преобразования.Например, если у нас действительно есть слой преобразования, то: 1) радикальные изменения в DTO могут привести к ошибкам во всем проекте, следовательно, наличие слоя преобразования изолирует ошибку в одной точке кода.2) Я могу добавить дополнительную логику в базовую структуру данных, которую нельзя добавить в DTO, потому что она генерируется автоматически.
Однако я также вижу недостатки в наличии слоя преобразования: 1) Код преобразования DTO должен быть согласованным при изменении DTO.Это добавляет еще один шаг, о котором должен знать программист, и, следовательно, более подвержен ошибкам.2) Это также приводит к дублированию кода, так как по большей части вы копируете средства доступа DTO.
Какой лучший путь?DTO повсюду или слой конверсии?Кто-нибудь может направить меня в правильном направлении?