Arquitetura de Software
Object
Felipe Cordeiro - Engenharia de Software
Objetivo do padrão:
- Reduzir o número de chamadas de métodos de interfaces remotas, porque esse processo é muito custoso.
Metodologia:
- Criar um objeto responsável pelo processamento dos dados, atuando entre fonte e destino.
Diagrama do padrão:
Consequências
- Maior quantidade de dados transferidos por chamada. Como o padrão funciona:
- Utilizando objetos mutáveis
- Utilizando objetos imutáveis
- Utilizando objetos para Bancos de Dados
- Utilizando Estruturas de Dados
Quantidade de DTO:
- Um ou mais, dependendo da semelhança dos dados que estão sendo transferidos.
Serializando o DTO
- Além dos “gets and sets” os dados podem ser serializados em binário, formatos de texto
XML, JSON, etc.
Consequências
- Automatização
- Custo de desempenho
Do domínio para um DTO
- Um objeto denominado “Assembler” é responsável de transformar os dados do domínio para o um DTO.
Quando usar o DTO?
- Quando muitos dados precisarem ser transferidos em uma única consulta.
Exemplo - Diagramas
Diagrama de classes do domínio
Exemplo - Diagramas
Diagrama de classes - DTO
Simplificação da estrutura de dados.
Código fonte - AlbumAssembler
Código fonte - TrackDTO
Código fonte - DataTransferObject
Código fonte - AlbumDTO
(Serialização para XML)
Código fonte - AlbumDTO (lendo e escrevendo em XML)
Código fonte - TrackDTO
(Serialização para XML)
Referências
- Martin Fowler, David Rice, Matthew Foemmel, Edward
Hieatt, Robert Mee, Randy Stafford - Patterns of Enterprise
Application Architecture.
- http://martinfowler.com/eaaCatalog/dataTransferObject.html