10.2. Row Data Gateway
Um objeto por linha, só com acesso a dados, sem regra de negócio.
Resumo
- Cada instância representa uma linha; campos espelham colunas. Métodos
insert(),update(),delete(). - Finders ficam em classe separada (Finder) e devolvem gateways prontos.
- Sem lógica de domínio. Se colocar regras dentro, vira Active Record.
- Combina com Transaction Script: o script manipula o gateway em vez de SQL cru.
- Pode ser gerado por código a partir do esquema. Use Identity Map se o mesmo registro for lido várias vezes.
Perguntas-chave
responda de cabeça, depois abraO que transforma um Row Data Gateway em Active Record?
Adicionar lógica de domínio ao objeto.
Onde ficam os métodos de busca?
Normalmente em uma classe Finder separada, que retorna instâncias do gateway.
Com qual padrão de domínio ele combina?
Transaction Script.
Exercícios de fixação
0/5 respondidas1.
A classe
PessoaGateway tem campos nome, sobrenome e métodos insert/update, sem nenhuma regra. Se você adicionar calcularIsencao(), ela vira:2.
Onde costumam ficar os métodos
find no Row Data Gateway?3.
Qual organização de domínio usa Row Data Gateway naturalmente?
4.
Qual afirmação sobre Row Data Gateway é verdadeira?
5.
Por que Row Data Gateways são bons candidatos a geração de código?