Olá
Basicamente, qual a diferença entre Value Object (VO) e Data Transfer Object (DTO) ?
Obrigado
Olá
Basicamente, qual a diferença entre Value Object (VO) e Data Transfer Object (DTO) ?
Obrigado
Oie Marcos, tudo bem contigo?
As principais diferenças são:
VO: É basicamente um objeto usado para exibir dados na camada de apresentação, sua identidade é baseada nos valores de seus atributos.
DTO: Objeto simples usado para transferir dados de um local ao outro na aplicação, não possui lógica de negócios em seus objetos. É geralmente associado a transferência dados entre a camada de visão (view) e a de persistência de dados (model).
Se tiver restado alguma dúvida fico a disposição :)
Bons estudos!
Olá Igor, tudo bem e contigo?
Então deixa eu ver se entendi.. o DTO representa os campos do formulário(view) enquanto o VO representa a volta dos atributos do banco de dados de volta para a camada de apresentação, certo?
É que sempre usei os campos que representam um formulário em classes com Form no final (ex.: FormularioForm.java). Mas tudo bem.
Obrigado
Para facilitar seu entendimento, um exemplo de VO seria a String
, sendo ela é imutável e identificado pelo seu valor. Alguns outros exemplos de VO são enderenço, email, cartão, entre muitos outros. Portanto VO é um objeto que tem um valor na aplicação. Segue um exemplo abaixo:
public class Funcionario {
private Integer id;
private String nome;
private String sobrenome;
private double salario;
private Endereco endereco; // vamos considerar que o endereço é um dado importante do projeto e por isso decidimos criar um VO para esse dado
...
}
public class Endereco { // essa classe será um objeto será identificada pelos valores presentes em seus atributos e geralmente é usada para aprensentar dados na camada de apresentação.
private String rua;
private Integer numero;
private String cep;
...
}
Espero que agora tenha ficado melhor de entender!