Должен ли я использовать шаблон строителя в DTO?

Это может быть довольно субъективный вопрос, но я хотел бы узнать еще несколько мнений. Я создал службу Rest API с помощью Spring MVC и реализовал шаблон DTO-Domain-Entity. Я хочу знать, что вы думаете о реализацииОбразец строителя в DTO, что-то вроде

public class UserResponseDTO
    extends AbstractResponseDTO {

    private String username;
    private Boolean enabled;

    public UserResponseDTO(String username, Boolean enabled) {
        this.username = username;
        this.enabled = enabled;
    }

    public String getUsername() {
        return this.username;
    }

    public Boolean getEnabled() {
        return this.enabled;
    }

    public static class Builder {

        private String username;
        private Boolean enabled;

        public void setUsername(String username) {
            this.username = username;
        }

        public void setEnabled(Boolean enabled) {
            this.enabled = enabled;
        }

        public UserResponseDTO build(){
            return new UserResponseDTO(username, enabled);
        }
    }
}

Согласно определению:

Цель шаблона проектирования Builder - отделить конструкцию сложного объекта от его представления. При этом один и тот же процесс строительства может создавать разные представления.

В большинстве случаев DTO (если не сказать все) у меня нет более сложного объекта, такого как этот случай. И, честно говоря, я не могу вспомнить ни одного примера, где строят сложный объект, если мы говорим о DTO.

Одним из шаблонов, который помогает упростить использование неизменяемых объектов и внести ясность в код, является шаблон Builder.

Построитель шаблонов обеспечивает объекты иммутабилтий. Тогда мы можем думать, что DTO - это сам ответ службы, и его не следует изменять, поскольку это ответ (по крайней мере, так я думаю об этом)

Так что ты думаешь? Должен ли я использовать этот шаблон для DTO (учитывая тот факт, что этот случай, и, вероятно, большинство из них, не удовлетворяет принципу сложного объекта)?

Ответы на вопрос(1)

Ваш ответ на вопрос