这可能是一个相当主观的问题,但我想知道更多的意见。 我使用Spring MVC构建了一个Rest API服务,并实现了DTO-Domain-Entity模式。 我想知道您对在DTO中实现Builder pattern的看法,例如:
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);
}
}
}
根据定义:
建造者设计模式的目的是将复杂对象的构建与其表示分离。通过这样做,相同的构建过程可以创建不同的表示形式。
在我大多数DTO案例中(甚至可以说全部),我没有更复杂的对象需要构建,就像这个案例一样。而且,老实说,如果我们在谈论DTO,则无法想出任何构建复杂对象的示例。
有助于使不可变对象更易于使用并清晰化代码的模式之一是建造者模式。
建造者模式提供了对象的不可变性。因此,我们可以认为DTO本身就是服务响应,不应该被更改,因为这是一种响应(至少这就是我的想法)。
那么你认为呢?我应该对DTO使用这种模式吗(考虑到这种情况,以及可能的大多数情况都不符合复杂对象原则)?