java - 将一个 d 更改为另一个
问题描述
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GenerateDaByContextDto {
private String cNumber;
private BusinessContext businessContext;
private String zCode;
private String yCode;
private String xCode;
private String event;
public GenerateContentDto toGenerateContentDto() {
return GenerateContentDto.builder()
.businessContext(businessContext)
.event(event)
.build();
}
}
我正在进行代码审查,当我想知道像这样更改 DTO 是否可以?需要的是某些方法具有GenerateContentDto
作为参数,并且可以从 GenerateDaByContextDto
代码中的 DTO 获取。是否有其他选择可以让它变得更好?规则好不好SRP
?我已经简化了DTOs
字段。
解决方案
强烈地说,它是基于意见的,取决于项目。
但是让我们记住单一责任原则。DTO 负责层之间的数据保存,而不是转换。我更喜欢有一个简单的转换器,方法如下:
public class GenerateDaByContextDtoConverter {
public GenerateContentDto convert(GenerateDaByContextDto source) {...}
}
出于同样的原因,通常 DTO 是不可变的。您可以使用 lombok 的@Value
注释。
如果与业务逻辑一致,则另一种解决方案可能是组合:
class GenerateDaByContextDto {
private GenerateContentDto generateContentDto;
...
}
推荐阅读
- c# - 如何使用按位运算符解决此问题?
- java - 无法将某些数据传输到新页面
- javascript - 我可以编写一个枚举/联合/对象并将其同时视为类型和值吗?
- javascript - React.js中基于Click删除数组的特定索引
- r - 匹配子字符串和其他变量
- javascript - Stenciljs 路由问题
- javascript - 使用鼠标在 HTML5 画布上绘图时,鼠标位置未正确定位
- javascript - 触摸 datazoom 的滑块时出现 eCharts 错误
- android - playAnimation() 不会触发抽签动画
- postgresql - 将 Postgres 服务与自定义容器映像连接的 Github 操作