Java DTO 和最终字段

标签 java pojo dto final

存在关于 DTO(数据传输对象)和带有 Final 修饰符的 java 实现字段的问题。

事实上。所有 DTO 必须在一个地方(构造函数)创建,DTO 内部没有任何逻辑。如果有多个源 - 有聚合服务,它可以收集所有数据并将其放入新的 DTO 中。此外,具有最终字段的 DTO 将更加可预测。不是吗?

示例:

 @Getter
 class FooDto {
   private final ... fooField;
 }

问题是:我应该在 DTO 的字段上使用 Final 修饰符吗? 我没有找到关于 DTO 的确切信息。但在我看来 - 最终是这里的好点。

最佳答案

您的问题没有正确和错误的答案。尽管如此,使用提到的最终字段是很好的做法 here

如果您在返回语句之前无法进一步控制字段,那么您最好使用最终字段。您应该考虑“不可变对象(immutable对象)设计模式”作为一个很好的实践。

如果您在返回对象之前需要进行第二次检查,那么您可以删除 Final 修饰符并使用库进行映射并避免额外的代码。您可以使用Mapstruct

关于Java DTO 和最终字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61868045/

相关文章:

java - 如何从 SOAP 端点接收 xml 响应?

java - Android:在线程中使用未捕获的异常强制崩溃

java - 如何解析具有不同键值的json对象?

mysql - MyBatis 从 MySql 数据库中检索整数作为枚举

symfony - 如何避免设置者使用 Symfony 和管理面板创建者?

java - JIntellitype与java

java - 使用 jackson - @JsonPropertyOrder 进行 Json 到 POJO 解析,以下 Json 根据#students 有所不同?

java - 使用 RESTeasy 管理属性继承

c# - 如何使用 nhibernate 获取 DTO 成员的集合?

java - 如何在 dto 属性上使用 SafeHtml 注释?