这可能是一个非常主观的问题,但我想知道更多的意见。我用 Spring MVC 构建了一个 Rest API 服务,并实现了 DTO-Domain-Entity 模式。我想知道您对在 DTO 中实现Builder 模式有何看法,例如
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 使用这种模式吗(鉴于这种情况,可能是大多数情况,不满足复杂对象原则)?