Должен ли я использовать шаблон строителя в 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 (учитывая тот факт, что этот случай, и, вероятно, большинство из них, не удовлетворяет принципу сложного объекта)?