1. APLICAÇÕES EM
4 CAMADAS COM JAVA
REFLECTION
III SEMANA DE TECNOLOGIA
FATEC PRESIDENTE PRUDENTE
INSTRUTOR: ANDRÉ L. JAMARINO ABEKAWA
EMAIL: ANDRE.ABEKAWA@GMAIL.COM
MSN: ABEKAWA@LINUXMAIL.ORG
3. ARQUITETURA EM CAMADAS
• Histórico:
• Projeto em duas camadas:
• Cliente: Responsável por encapsular toda lógica de
negócios e interface com usuário
• Servidor: Responsável pela persistência dos dados, ou
seja, armazená-los, por exemplo, em um banco de dados
• Desvantagens: O Paradigma cliente / servidor sofre de
uma grande deficiência quando se trata de manutenção
pelo agrupamento de código (manutenabilidade).
4. ARQUITETURA N CAMADAS
• CAMADAS (LAYERS)
• O que é? O desenvolvimento em camadas objetiva
separar os componentes com responsabilidades ou
critérios comuns em grupos ou camadas.
Apresentação – Lógica de apresentação (GUI)
Lógica de negócios – Domínio da Aplicação
Dados – Controle de dados (Reflection)
Persistência – Manutenção/Armazenamento de Dados
5. ARQUITETURA N CAMADAS
• Separação em camadas:
• Acoplamento: Reduz o acoplamento permitindo que a
manutenção ou alteração de componentes de uma
camada não interfira diretamente com outras.
• Coesão: Cada camada irá encapsular as funcionalidades
além de aumentar a coesão por manter componentes
similares em grupos.
• Interação: O Desenvolvimento utilizando a arquitetura em
N camadas não especifica como os componentes
interagem entre si. (Exemplo de interação MVC)
• Visualização das camadas:
• Transparente: Permitem que a camada superior visualize
a camada inferior
• Opacas: Impedem a visualização da camada inferior.
6. AS CAMADAS: APRESENTAÇÃO
CAMADA DE APRESENTAÇÃO: Essa camada possui todos
os componentes responsáveis pela apresentação dos dados
e informações ao usuário da aplicação. No caso, da
linguagem JAVA , podemos dizer que existem várias opções
para trabalhar interfaces (SWING, AWT, JSP, entre outras) e
para cada necessidade existirá uma opção que melhor se
adeque à necessidade.
Observação: Estamos falando de N Camadas (N-tier) muitas
aplicações separam essa camada em duas ou mais para se
adequar a projetos onde a interface seja, por
exemplo, DESKTOP (SWING) ou WEB (JSP)
Ex: Camada de Apresentação
Camada Interface (GUI)
Lógica de apresentação
7. AS CAMADAS: LÓGICA DE NEGÓCIOS
LÓGICA DE NEGÓCIOS: Esta camada é responsável pela
lógica e modelo de negócios da aplicação, ou seja, toda
lógica que envolve os processos necessários para atender
os requisitos da aplicação será concentrada nesta camada.
Ex. Funções da aplicação.
• Cadastros/ Manutenção
• Operações/Transações
8. AS CAMADAS: DADOS
CAMADA DE DADOS: A Camada de Dados irá manipular
dados entre a camada de negócios e persistência.
Essa camada, durante o minicurso, irá abordar conceitos e
técnicas de reflexão em JAVA (JAVA Reflection)
Para exemplificar, os objetos desenvolvidos para a aplicação
possuem relacionamento de todos os atributos de classe
com as tabelas (Relacionamento direto ObjetoxTabela)
A Camada será responsável pelas operações CRUD para
todos os objetos de forma genérica.
9. AS CAMADAS: PERSISTÊNCIA
CAMADA DE PERSISTÊNCIA: A Camada responsável pela
persistência dos dados, ou seja, realizar ou executar as
operações necessárias para “GRAVAR” um determinado
dado, seja em um Banco de Dados ou em outro meio de
armazenamento.
Essa camada concentra todos os componentes que realizam
essas funções ou operações.
10. JAVA REFLECTION
• O QUE É JAVA REFLECTION:
• JAVA REFLECTION é uma API presente no JAVA desde a
versão 1.1 (Atualmente versão 6), que permite a
introspecção ou examinar ele mesmo em tempo de
execução.
• Por meio do uso de reflexão podemos, por
exemplo, identificar os atributos, métodos, entre outras
informações sobre objetos em tempo de execução.
SÉRIO? VAMOS TESTAR!
11. TESTANDO REFLEXÃO
1. Abrir o NetBeans
2. Criar um novo projeto JAVA
3. Criar a Classe Usuário // Código logo a seguir
4. Inserir os códigos da reflexão na classe principal MAIN
5. F6 – Executar o projeto
VAMOS LÁ?
12. TESTANDO REFLEXÃO
Descobrindo os métodos da classe: Usuario
//Classe Usuario
public class Usuario{
public Usuario(){
}
private Integer _ID;
private String _Login;
private String _Senha;
//Usar encapsular do Netbeans para gerar os sets e gets
}
13. TESTANDO REFLEXAO
//Dentro da classe MAIN
try {
Class c = Class.forName( ”Pacote.Usuario" );
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++) {
System.out.println( m[i].toString() );
}
}
catch (Throwable e) {
System.err.println(e);
}
}
14. TESTANDO REFLEXÃO
SE OS PROCEDIMENTOS FORAM
SEGUIDOS CORRETAMENTE A SAÍDA
DO PROJETO DEVERÁ EXIBIR OS
MÉTODOS SETS E GETS DA CLASSE
Usuario()
15. JAVA REFLECTION
LEGAL, MAS E AÍ O QUE MAIS DÁ PARA FAZER COM ISSO?
Bom, existem vários métodos que a API Reflection possui.
Entre eles alguns que julgo interessante é a possibilidade de
recuperar os dados em uma instância de classe
(objeto), mesmo encapsulado com modificadores private, e
manipulá-los.
Vamos agora utilizar as camadas para
entender a arquitetura e o uso do JAVA
Reflection?
16. PEQUENO PROJETO EM CAMADAS
1. Efetue o Download do Projeto em:
www.artforreason.com.br/fatec/JAVA/projeto.rar
2. Descompacte o arquivo
3. Inicialize o serviço MYSQL de seu computador (WAMP)
4. No phpMyAdmin ou gerenciador de sua preferência crie
o banco com nome “semana” e importe as tabelas do
arquivo banco.sql (Arquivo Compactado)
5. Certificar o acesso do usuário root no mysql senha root
6. Abra o projeto IIISemana (Arquivo Compactado)
7. Qualquer dúvida por favor comunicar
18. APLICAÇOES EM N CAMADAS
COM JAVA E REFLECTION
Instrutor: André Luiz Jamarino Abekawa
E-mail: andre.abekawa@gmail.com
MSN: abekawa@linuxmail.org
REFERÊNCIAS:
FORMAN, Ira R; FORMAN, Nate. Java Reflection in Action (In Action series).
Greenwich, CT 06830, Manning publications, 2005.