Qual a diferença entre criar o DTO como classe ou record?
Qual a diferença entre criar o DTO como classe ou record?
Olá, Marco. Tudo bem?
A diferença entre criar um DTO (Data Transfer Object) como uma classe ou como um record no Java está principalmente relacionada à simplicidade e à imutabilidade.
Classe DTO:
Exemplo:
public class PagamentoDto {
private String codigo;
private String descricao;
private double valor;
public PagamentoDto(String codigo, String descricao, double valor) {
this.codigo = codigo;
this.descricao = descricao;
this.valor = valor;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
// Getters e setters para os outros atributos...
}
Record DTO:
equals()
, hashCode()
, ou toString()
, pois eles são gerados automaticamente.Exemplo:
public record PagamentoDto(String codigo, String descricao, double valor) {}
Em resumo, se você precisa de um DTO simples e imutável, os records são uma ótima escolha por sua concisão e simplicidade. No entanto, se você precisa de mais flexibilidade, como adicionar lógica de negócios ou métodos adicionais, uma classe tradicional pode ser mais adequada.
Espero ter ajudado e bons estudos.