Padrões de Projeto e Arquitetura em Camadas
-
Upload
alexandra-valdez -
Category
Documents
-
view
28 -
download
1
description
Transcript of Padrões de Projeto e Arquitetura em Camadas
![Page 1: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/1.jpg)
Padrões de Projeto eArquitetura em Camadas
Monitoria IP/CC(~if669)
![Page 2: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/2.jpg)
Roteiro
1. Padrões de Projeto2. Arquitetura em Camadas– Camada de Dados– Camada de Negócio– Fachada;– Camada de Interface Gráfica do Usuário
3. Considerações Finais4. Referências
![Page 3: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/3.jpg)
Padrões de Projeto
• Padrões de projeto são estratégias adotadas para o desenvolvimento de sistemas com programação orientada à objetos.
• Alguns de seus benefícios são a padronização de termos e metodologias utilizados para a resolução de problemas em software.
• A utilização de padrões de projeto auxilia programadores “orientados à objetos” a resolver os mais diversos e complexos problemas.
![Page 4: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/4.jpg)
Padrões de Projeto
• Ao utilizar O.O. na resolução de um problema, um programador utiliza ao menos um padrão de projeto – mesmo sem saber que o tenha feito.
• Existem vários padrões. Os principais compõem a literatura sobre o assunto e podem ser encontrados na sessão de referências.
• São geralmente utilizados em conjunto, unindo diferentes padrões de projeto de acordo com a necessidade do programador.
![Page 5: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/5.jpg)
Arquitetura em Camadas
• A arquitetura em camadas une conceitos de alguns padrões de projetos para o desenvolvimento prático e eficiente de um sistema computacional.
• Através dessa arquitetura, uma aplicação é racionalmente modularizada (mais modularidade, menos acoplamento entre módulos).
• Alguns benefícios de sua utilização são:– Reusabilidade;– Extensibilidade;
![Page 6: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/6.jpg)
Arquitetura em Camadas• Na prática, consiste em dividir a aplicação em módulos que possuem
interfaces bem definidas (para estabelecer comunicação entre eles).
• Diferentes módulos da aplicação contém código relacionado a funcionalidades específicas e se comunicam apenas com módulos adjacentes.
• Classes relacionadas são agrupadas em pacotes referentes a uma camada que trata de uma funcionalidade específica.
• No modelo mais básico, são definidas quatro camadas: de dados; de negócio; de fachada; e de interface com o usuário.
![Page 7: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/7.jpg)
Arquitetura em Camadas
• Demonstraremos a utilização da arquitetura em quatro camadas:
GUI – Interface Gráfica do Usuário
Fachada
Negócio
Dados
![Page 8: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/8.jpg)
Camada de Dados
• Responsável pela funcionalidade de armazenamento e acesso a dados do sistema.
• A camada de dados agrupa as classes que implementam estruturas de dados e pode também conter aquelas que representam as entidades.
• Ex.:
Dados Conta
RepositorioContas
Cliente
RepositorioClientes
![Page 9: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/9.jpg)
Camada de Negócio
• Constituída por classes que definem as regras de negócio do sistema.
• As regras de negócio são inerentes à aplicação e independem da forma de armazenamento, comunicação, interface com usuário, etc.
• Ex.:
NegócioBancoClientes
BancoContas
![Page 10: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/10.jpg)
Fachada• A fachada provê uma interface de acesso aos módulos
das camadas mais baixas, unindo as possíveis funcionalidades fornecidas por elas.
• Pode ser usada para diferenciar tipos de acesso ao sistema. Por exemplo, um administrador deve ter acesso ao método excluirUsuário, mas um usário comum não.
• Ex.:Fachada
FachadaAdm
FachadaUser
![Page 11: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/11.jpg)
Camada de Interface com Usuário (GUI)
• A GUI agrupa as classes que definem como a aplicação é exibida ao usuário e que são a interface de interação entre ele e o sistema.
• O código que compõe esta camada depende da tecnologia utilizada: HTML, Swing, modo-text, etc;
• Ex.:
GUI – Interface Gráfica do Usuário FramePrincipal
FrameATM
FrameCadastro
![Page 12: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/12.jpg)
Considerações Finais• A camada de dados é qualificada como uma camada burra. No
código que compõe as suas classes, não é feita qualquer verificação de dados mas apenas acesso e armazenamento desses.
• A verificação é feita no código das classes da camada de negócio – responsável pelo gerenciamento das regras de negócio inerentes à aplicação.
• Obs.: eventualmente – a depender da modelagem do problema – métodos da camada de dados podem levantar exceções – geralmente, aquelas referentes a erros aos quais as estruturas de dados estão vulneráveis.
![Page 13: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/13.jpg)
Considerações Finais
• Duas palavras-chave na arquitetura em camadas são modularidade e acoplamento.
• Modularidade diz respeito à capacidade das classes de camadas distintas independerem umas das outras. Isto é proporcionado em especial pelo uso de interfaces.
• Acoplamento remete ao modo como classes de diferentes camadas se comunicam (instanciam, estendem, etc.)
![Page 14: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/14.jpg)
Considerações Finais
• É comum encontrar diferentes modelagens da arquitetura em camadas.
• Por exemplo, algumas definem classes básicas (entidades) na camada de negócios, outras na camada de dados, existem também aquelas que criam uma camada à parte apenas para gerenciamento dessas classes.
• Portanto, é possível modelar o mesmo problema de diferentes maneiras. Mas é necessário sempre prezar pelo mínimo acoplamento entre os módulos.
![Page 15: Padrões de Projeto e Arquitetura em Camadas](https://reader036.fdocumentos.tips/reader036/viewer/2022080223/568130ad550346895d96ba59/html5/thumbnails/15.jpg)
Referências
• Java Design Patterns– http://www.javacamp.org/designPattern/
• Estruturação de Sistemas em Camadas– http://www.cin.ufpe.br/~if669/files/MaterialDeEnsino/Tra
nsparencias/aulaIP-27.pdf