17. Layer != Tier
Tier
Divisão Física
(Client/Server)
Layer
Divisão Lógica
(que também poderia ser física)
18. Camadas
Apresentação Domínio Database
Interação Regras de Comunicação
do Software Negócio, com outros
com o Usuário Cálculos e sistemas e
ou Serviço Validações Persistência
Cliente
19. As camadas de domínio
e dados não devem ser
dependentes da
apresentação.
Fowler
20. O que aconteceria se você
tivesse que substituir seu
banco de dados por um
arquivo XML?
21. E se tivesse que criar
um cliente para
iPhone ao invés de
HTML?
25. Um procedimento que recebe
dados da camada de apresentação,
processa com validações e
cálculos, armazena no banco de
dados, e invoca operações de
outros sistemas, então replica
mais dados para a apresentação
26. Um procedimento único
para cada ação
do Usuário
Pode ser separado
em sub-rotinas e
que podem ser
compartilhadas por
diferentes scripts.
45. Divisão
Uma abordagem comum que divide a
camada de domínio em duas.
46. API
A camada de
apresentação interage
com o domínio apenas
através do Service
Layer que atua como
uma API da
aplicação
47. Service
Excelente para inserir
Segurança e Controle de
Transações.
Recomendável que
aja como um Façade
sem comportamento
próprio.
48. Regras de Negócio
Domain Model Controller-Entity
Apenas Style Transaction
Segurança e Comportament Script
Transações no o comum em
Service Layer, objetos, Anemic
Comportament específico em Domain
o todo no transaction Model
Domain Model scripts.
Domain Service
49. “Minha preferência é por
ter a Service Layer mais
magra que for possível”
Martin Fowler