18.3. Layer Supertype
Superclasse comum para todos os tipos de uma camada.
Resumo
- Uma superclasse que concentra comportamento comum a todos os objetos de uma camada.
- Ex.:
DomainObjectcom Identity Field e igualdade;AbstractMappercom código de busca. - Evita duplicação e dá um ponto para recursos transversais (marcar sujo, versão).
- Pode haver um supertype por camada: domínio, mappers, controladores.
- Padrão simples, usado como base por vários outros padrões do livro.
Perguntas-chave
responda de cabeça, depois abraO que vai em um Layer Supertype de domínio?
Coisas comuns a todas as entidades: id, igualdade, marcação para o Unit of Work, versão.
Pode haver mais de um?
Sim, um por camada (domínio, mapeamento, apresentação).
Qual problema ele resolve?
Duplicação de código comum entre as classes de uma mesma camada.
Exercícios de fixação
0/5 respondidas1.
Todas as entidades herdam de
DomainObject, que tem id e equals() baseado nele. Qual padrão?2.
Onde colocar a chamada
UnitOfWork.registrarSujo(this) para que nenhuma entidade esqueça?3.
Um sistema tem
AbstractMapper com o fluxo comum de find() usado por todos os mappers. Isso é:4.
Quantos Layer Supertypes um sistema pode ter?
5.
Qual o principal benefício do Layer Supertype?