Академический Документы
Профессиональный Документы
Культура Документы
CAMADAS
Maurcio Manoel Coelho Jnior
mauricio.junior@fafica-pe.edu.br
26 de agosto de 2014
https://edulify.com/mauricio.junior
Agenda
Definio
Propsito de Cada Camada
Vantagens e Desvantagem
Padro Arquitetura
Viso Arquitetural
Implementao da Arquitetura em 3 Camadas
Melhorando o Projeto
Referncias
26 de agosto de 2014
Definio
Estimula a organizao da arquitetura do
sistema em um conjunto de camadas coesas
com fraco acoplamento entre elas;
Cada camada possui um propsito bem
definido;
A camada superior conhece apenas a
camada imediatamente inferior (que fornece
seus servios atravs de uma interface).
26 de agosto de 2014
Definio
Cada camada formada por um conjunto de
classes com um determinado propsito.
26 de agosto de 2014
Vantagens e Desvantagem
Vantagens:
Separao de cdigo relativo a interface com o
usurio (UI), comunicao, negcio e dados;
Permite a mudana de implementao de uma
camada sem afetar a outra, desde que a
interface entre as mesmas seja mantida;
Possibilita que uma camada trabalhe com
diferentes verses de outra camada.
Desvantagem:
Aumento no nmero de classes existentes no
sistema.
26 de agosto de 2014
26 de agosto de 2014
Viso Arquitetural
26 de agosto de 2014
Viso Arquitetural
26 de agosto de 2014
PERGUNTAS?
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Diviso em Pacotes
Um pacote um conjunto de classes;
Agrupar em um pacote classes fortemente
relacionadas;
O pacote deve ser visto como um elemento
altamente coeso:
Classes de um mesmo pacote devem ter
acoplamento e colaborao relativamente altos.
Por outro lado, o acoplamento e colaborao entre
classes agrupadas em diferentes pacotes devem ser
relativamente baixos.
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Entidades
Implementar um Sistema para cadastro de
Cliente.
Classes Bsicas de Negcio (Entidades):
Cliente, Endereco.
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Exerccio 01
- Criar um pacote aulaXX.com.fafica.cliente;
- Criar um pacote aulaXX.com.fafica.endereco;
- Criar um pacote aulaXX.com.fafica.tela;
- Criar a classe Cliente com: nome (string), cpf (string), idade (int) e endereco
(Endereco) no pacote aulaXX.com.fafica.cliente;
- Criar a classe Endereco com: logradouro, numero, bairro, cidade e estado,
todos do tipo String no pacote endereco;
- Criar um programa chamado TelaCadastrarCliente no pacote tela para testar a
instancia de cliente ;
- Todos os atributos devem ser privados;
- Todas as classes precisam der um construtor, gets e sets e o mtodo toString.
Implementao da Arquitetura em 3
Camadas
Fachada
Obrigatoriamente, deve implementar todos
os mtodos para auxiliar o CRUD de todas as
entidades.
Tem um ou mais atributos do tipo
Controlador.
Delega para os controladores as chamadas de
mtodos.
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Exerccio 02
- Criar um pacote aulaXX.com.fafica.fachada;
- Criar a classe Fachada conforme figura anterior no pacote fachada;
- No mtodo clienteCadastrar imprimir o contedo da varivel cliente;
- Criar a varivel fachada (Fachada) no programa TelaCadastrarCliente; e
instanciar o objeto Fachada na varivel fachada; Chamar o mtodo
clienteCadastrar passando como parmetro o cliente criado no exerccio
anterior;
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Controlador
Um controlador para cada entidade persistente;
Contm os mtodos que sero chamados pela
fachada.
Exemplo: Servios bsicos de manuteno de um
cadastro tais como inserir, alterar, remover e buscar.
Implementao da Arquitetura em 3
Camadas
Controlador
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Exerccio 03
- Criar a classe ControladorCliente conforme figura anterior no pacote
cliente;
- No mtodo cadastrar da classe ControladorCliente imprimir o contedo da
varivel cliente;
- Criar a varivel controladorCliente (ControladorCliente) na classe Fachada;
- No mtodo clienteCadastrar da Fachada, comentar a impresso da varivel
cliente e instanciar o objeto ControladorCliente na varivel
controladorCliente; Chamar o mtodo cadastrar da classe
ControladorCliente passando como parmetro a varivel cliente;
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Cadastro
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Interface do Repositrio
Ir oferecer os servios de persistncia de
dados;
Uma interface do repositrio para cada
entidade persistente.
Exemplo: Servios bsicos de persistncia tais
como inserir, alterar, remover, buscar e verificar
se um determinado objeto existe.
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Interface do Repositrio
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Exerccio 04
- Criar a interface IRepositorioCliente conforme figura anterior no pacote
cliente;
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Repositrio
Implementa a persistncia dos dados;
Obrigatoriamente, deve implementar todos
os mtodos da interface do repositrio;
Contm os mtodos que sero chamados
pelo Controlador ou Cadastro.
Exemplo: Servios bsicos de persistncia tais
como inserir, alterar, remover, buscar e verificar
se um determinado objeto existe.
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Repositrio
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Exerccio 05
- Criar a classe RepositorioClienteArray implementada da classe
IRepositorioCliente;
- No mtodo cadastrar imprimir o contedo da varivel cliente;
- Criar a varivel repositorioCliente (IRepositorioCliente) na Classe
ControladorCliente;
- No mtodo cadastrar da classe ControladorCliente, comentar a impresso
da varivel cliente e instanciar o objeto RepositorioClienteArray na varivel
repositorioCliente ; Chamar o mtodo cadastrar do RepositorioClienteArray
passando como parmetro o cliente criado no exerccio 03;
26 de agosto de 2014
Implementao da Arquitetura em 3
Camadas
Aplicao
26 de agosto de 2014
PERGUNTAS?
26 de agosto de 2014
MELHORANDO O
PROJETO
26 de agosto de 2014
Padres de Projeto
Um padro de projeto ou padro de desenho (design
pattern) uma soluo geral reutilizvel para um problema
que ocorre com frequncia;
Define uma descrio ou modelo (template) de como
resolver o problema;
Padres so melhores prticas formalizadas que o
programador pode usar para resolver problemas comuns
quando projetar uma aplicao ou sistema.
26 de agosto de 2014
Padres de Projeto
Padres de Projeto
26 de agosto de 2014
Singleton
O que
Padro GoF de projeto de software da famlia de criao.
Objetivo
Garantir que uma determinada classe tenha uma nica
instncia (nico objeto) no sistema.
Onde aplicar
Em muitos contextos pode ser til ter a garantia de
existncia de apenas um objeto de uma dada classe,
exemplos:
Uma fachada nica para um dado sistema;
Um nico gerenciador de conexes para acesso a banco
26 de agosto de 2014
de dados.
Singleton
O construtor da classe que utiliza o padro
singleton deve ser privado para evitar que diversos
objetos da classe sejam criados sem controle;
Um atributo esttico privado do mesmo tipo da
classe declarado para manter a instncia (objeto)
nica da classe;
Um mtodo esttico pblico getInstancia( )
implementado para criar a nica instncia da classe
e permitir que outros objetos do sistema tenham
acesso a mesma.
26 de agosto de 2014
Singleton
Exemplo do padro Singleton como Diagrama de
Classe.
26 de agosto de 2014
Singleton
Fachada alterada para utilizar o padro singleton.
26 de agosto de 2014
Referncias
Artigo: Integrando Java com Bancos de Dados
Relacionais. Autores: Euriclia Viana e Paulo Borba
(http://www.cin.ufpe.br/~phmb/publications.htm)
Artigo: PDC: The persistent data collections pattern.
Autores: Tiago Massoni, Vander Alves, Srgio Soares
e Paulo Borba
(http://www.cin.ufpe.br/~phmb/publications.htm)
Livro: Design Patterns: Elements of Reusable ObjectOriented Software. Autores: Erich Gamma et al.
Editora Addison-Wesley
26 deMaterial
da Aula de POO do Prof. Mrcio Bueno
agosto de 2014
AULA 02 ARQUITETURA EM
CAMADAS
Maurcio Manoel Coelho Jnior
mauricio.junior@fafica-pe.edu.br
26 de agosto de 2014
https://edulify.com/mauricio.junior