4

Click here to load reader

JAVA REFLETCION

Embed Size (px)

DESCRIPTION

Pequena introdução sobre programação JAVA com Reflection

Citation preview

Page 1: JAVA REFLETCION

APLICAÇÕES EM

4 CAMADAS COM JAVA

REFLECTION

III SEMANA DE TECNOLOGIA

FATEC PRESIDENTE PRUDENTE

INSTRUTOR: ANDRÉ L. JAMARINO ABEKAWA

EMAIL: [email protected]

MSN: [email protected]

Page 2: JAVA REFLETCION

AGENDA

• ARQUITETURA EM CAMADAS

• JAVA REFLECTION

• DEMONSTRAÇÕES

• DISCUSSÃO

Page 3: JAVA REFLETCION

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).

Page 4: JAVA REFLETCION

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

Page 5: JAVA REFLETCION

ARQUITETURA N CAMADAS

• Separação em camadas:

• Acoplamento: Reduz o acoplamento permitindo que a manutenção ou alteração de componentes de umacamada não interfira diretamente com outras.

• Coesão: Cada camada irá encapsular as funcionalidadesalém de aumentar a coesão por manter componentessimilares em grupos.

• Interação: O Desenvolvimento utilizando a arquitetura emN camadas não especifica como os componentesinteragem 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.

Page 6: JAVA REFLETCION

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

Page 7: JAVA REFLETCION

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

Page 8: JAVA REFLETCION

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.

Page 9: JAVA REFLETCION

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.

Page 10: JAVA REFLETCION

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!

Page 11: JAVA REFLETCION

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Á?

Page 12: JAVA REFLETCION

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

}

Page 13: JAVA REFLETCION

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);

}

}

Page 14: JAVA REFLETCION

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()

Page 15: JAVA REFLETCION

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?

Page 16: JAVA REFLETCION

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

Page 17: JAVA REFLETCION

DUSCUSSÃO

• Dúvidas?

• Sugestões?

Page 18: JAVA REFLETCION

APLICAÇOES EM N CAMADAS

COM JAVA E REFLECTION

Instrutor: André Luiz Jamarino Abekawa

E-mail: [email protected]

MSN: [email protected]

REFERÊNCIAS:

FORMAN, Ira R; FORMAN, Nate. Java Reflection in Action (In Action series).

Greenwich, CT 06830, Manning publications, 2005.