Строго говоря, он основан на мнениях и зависит от проекта.
Но давайте вспомним принцип единой ответственности . DTO отвечает за хранение данных между слоями, а не за преобразование. Я предпочитаю иметь простой конвертер с таким методом, как:
public class GenerateDaByContextDtoConverter {
public GenerateContentDto convert(GenerateDaByContextDto source) {...}
}
По той же причине обычно DTO являются неизменяемыми. Вы можете использовать аннотацию lombok @Value
.
Еще одно решение может быть композиционным, если оно соответствует бизнес-логике:
class GenerateDaByContextDto {
private GenerateContentDto generateContentDto;
...
}