15.2. Data Transfer Object
Objeto só com dados, serializável, para levar muito em uma chamada.
Resumo
- Objeto só com dados (campos + getters/setters), serializável, para transportar entre processos.
- Agrega dados de vários objetos de domínio para reduzir chamadas remotas.
- Assembler converte domínio ↔ DTO, mantendo o domínio sem dependência do DTO.
- Desenhado para as necessidades do cliente (uma tela), não para espelhar o domínio.
- Serialização: binária (rápida, frágil) ou texto/XML/JSON (legível, tolera versões).
Perguntas-chave
responda de cabeça, depois abraPara que serve o Assembler?
Converter objetos de domínio em DTOs e vice-versa, mantendo o domínio independente do DTO.
DTO deve espelhar o domínio?
Não. Deve atender ao que o cliente remoto precisa, muitas vezes juntando dados de vários objetos.
Por que DTO deve ser serializável?
Porque viaja pela rede entre processos.
Exercícios de fixação
0/5 respondidas1.
A tela de álbum precisa de título, artista e faixas. O servidor monta um único objeto com esses campos e envia. O que é esse objeto?
2.
Quem deve conhecer o DTO, segundo Fowler?
3.
Qual a diferença entre DTO e Value Object?
4.
Serializar DTOs em XML/JSON em vez de binário tem qual vantagem?
5.
Como o DTO deve ser desenhado?