apresentação: padrões de projetos para persistência de dados
DESCRIPTION
Apresentação para o trabalho de PDS. UFCTRANSCRIPT
Introdução
● Armazenamento não volátil de dados.● Manter em meio físico recuperável:
○ Banco de dados.○ Arquivos.
Motivação
Quando se quer ter dados persistidos, a melhor maneira não é colocar as conexões com bancos ou arquivos em
qualquer parte do sistema.
Camadas
O Modelo de Camadas provê uma forma de se estruturar as classes com propósitos semelhantes, ou seja, agrupar em
uma mesma camada.
CamadasInterface
● Propósito de interação com o usuário. ● Mensagens fluem desta camada para a de negócios.● Mudanças na interface não afetam a camada de
negócios.
CamadasNegócio
● Modelam o domínio de problema.● Encapsula as funcionalidades da aplicação, sem se
preocupar com interfaces de usuário e a persistência de dados.
CamadasPersistência
● Agrupa classes que prover criação, remoção, alteração e recuperação de dados persistentes.
● É um front-end que empacota o acesso ao mecanismo de persistência.
PadrãoActive Record
"Invade" a camada do Modelo/Domínio da aplicação, definindo que um Objeto do modelo é o reflexo de uma
"linha" do banco de dados ou linhas de um arquivo.
PadrãoActive Record
Objetos que necessitam ser persistentes precisam estender/implementar uma classe ou interface que tenha os
métodos equivalentes a uma linha do banco de dados.
PadrãoActive Record
Essa abordagem é muitas vezes considerada uma falha no design da aplicação, pelo fato de que o
Domínio passa a ser subordinado do Banco de dados.
Problemas
PadrãoDAO (Data access object)
Toda interação e configuração com o Banco de dados, ou com o framework de persistência, ficam na camada
dos DAO.
PadrãoDAO (Data access object)
Pode-se programar métodos mais específicos, como selecioneNomeComLetraTal()
ou cadastrarFulano().
PadrãoDAO (Data access object)
Utilização em sistemas pequenos, com nível baixo de complexidade.
Problemas
Data Mapper
Separa os objetos de memória do banco de dados. A sua responsabilidade é a transferência de dados entre os dois e
também para isolá-los um do outro.
Padrão
Data Mapper
Os objetos de memória não precisam saber ainda que há um presente banco de dados.
Padrão
Data Mapper
A diferença entre o DAO é que este padrão muitas vezes necessita de um framework para trabalhar, pois assim pode
ser usado seus mapeamentos relacionados a tabela do banco de dados.
Padrão
PadrãoRepository
Camada de negócio da aplicação, responsável por manter e persistir os objetos de Modelo, enquanto isto
não envolver a infra-estrutura de persistência.
Padrão
Sendo parte do modelo, os repositórios não conhecem detalhes de infra-estrutura da aplicação (banco de
dados, http, etc)
Repository
Padrão
Os DAOs vão atuar implementando as chamadas mais genéricas, select, insert, update e delete.
Repository
Conclusão
Na verdade existem formas que auxiliam na decisão do seu projeto (designer), cabe a equipe identificar qual o melhor
padrão para a sua aplicação.
Referências➢ Professora Kessia Aline Marques Ferreira
http://pt.slideshare.net/brenovit/modelo-de-camadas
➢ Um Manifesto, Programação, web, banco de dados e muito desenvolvimento.http://manifesto.blog.br/2.0/Programacao/repository-patternhttp://manifesto.blog.br/2.0/Programacao/dao-active-record
➢ Padrão de projeto de softwarehttps://www.ime.usp.br/~kon/MAC5715/PLoP/2006/refact/RoupaSujaSeLavaEmCasa-ref.pdf
➢ Persistence Patterns, Jeremy Millerhttp://msdn.microsoft.com/en-us/magazine/dd569757.aspx
➢ [email protected]➢ [email protected]➢ Professor: Camilo Camilo Almendra