SlideShare uma empresa Scribd logo
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
AGENDA
• ARQUITETURA EM CAMADAS
• JAVA REFLECTION
• DEMONSTRAÇÕES
• DISCUSSÃO
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).
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
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.
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
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
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.
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.
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!
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Á?
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

}
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);
        }
  }
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()
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?
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
DUSCUSSÃO




      • Dúvidas?
     • Sugestões?
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.

Mais conteúdo relacionado

Mais procurados

Asp net mvc
Asp net mvcAsp net mvc
Trabalho camadas final+ (1)
Trabalho camadas final+ (1)Trabalho camadas final+ (1)
Trabalho camadas final+ (1)
sampaio0612
 
Cs 2
Cs 2Cs 2
Diagramas de pacotes
Diagramas de pacotesDiagramas de pacotes
Diagramas de pacotes
Portal_do_estudante_ADS
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
PythOnRio
 
Frameworks em Java
Frameworks em JavaFrameworks em Java
Frameworks em Java
Luis Fernando Pimenta
 
diagrama de componentes
diagrama de componentesdiagrama de componentes
diagrama de componentes
elliando dias
 
Uml
UmlUml
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantação
elliando dias
 
CURSO JAVA 01
CURSO JAVA 01CURSO JAVA 01
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Adriano Teixeira de Souza
 
ADO.NET
ADO.NETADO.NET
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
Ryan Padilha
 
Diagramas de componentes
Diagramas de componentesDiagramas de componentes
Diagramas de componentes
Portal_do_estudante_ADS
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Ryan Padilha
 
Arquitetura de Sofware
Arquitetura de SofwareArquitetura de Sofware
Arquitetura de Sofware
Jefferson Moreira
 
Aula1
Aula1Aula1
Aula1
mentrixmax
 
Mysql for IBMers
Mysql for IBMersMysql for IBMers
Mysql for IBMers
Wagner Bianchi
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
Mário Meyrelles
 

Mais procurados (19)

Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
Trabalho camadas final+ (1)
Trabalho camadas final+ (1)Trabalho camadas final+ (1)
Trabalho camadas final+ (1)
 
Cs 2
Cs 2Cs 2
Cs 2
 
Diagramas de pacotes
Diagramas de pacotesDiagramas de pacotes
Diagramas de pacotes
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
Frameworks em Java
Frameworks em JavaFrameworks em Java
Frameworks em Java
 
diagrama de componentes
diagrama de componentesdiagrama de componentes
diagrama de componentes
 
Uml
UmlUml
Uml
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantação
 
CURSO JAVA 01
CURSO JAVA 01CURSO JAVA 01
CURSO JAVA 01
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
 
Diagramas de componentes
Diagramas de componentesDiagramas de componentes
Diagramas de componentes
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
 
Arquitetura de Sofware
Arquitetura de SofwareArquitetura de Sofware
Arquitetura de Sofware
 
Aula1
Aula1Aula1
Aula1
 
Mysql for IBMers
Mysql for IBMersMysql for IBMers
Mysql for IBMers
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 

Destaque

Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and Filters
Sergio Crespo
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Aricelio Souza
 
Uma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDBUma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDB
Eduardo Nicola F. Zagari
 
Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
Eduardo Nicola F. Zagari
 
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e FiltrosPadrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
Eduardo Nicola F. Zagari
 
Padrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerPadrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - Broker
Eduardo Nicola F. Zagari
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Marcelo Yamaguti
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
sergiocrespo
 
Padrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasPadrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - Camadas
Eduardo Nicola F. Zagari
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
Eduardo Nicola F. Zagari
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
Vagner Santana
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
Alessandro Kieras
 

Destaque (12)

Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and Filters
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Uma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDBUma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDB
 
Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
 
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e FiltrosPadrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
 
Padrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerPadrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - Broker
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Padrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasPadrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - Camadas
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 

Semelhante a JAVA REFLETCION

Framework struts2v2.5
Framework struts2v2.5Framework struts2v2.5
Framework struts2v2.5
Eduardo Gabina
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Adriano Teixeira de Souza
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em Java
Fernando Camargo
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
Eric Gallardo
 
Artigo c#
Artigo c#Artigo c#
Artigo c#
André Luiz
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
armeniocardoso
 
Oficina cake php
Oficina cake phpOficina cake php
Oficina cake php
Allan George
 
Trabalho camadas final+ (1)
Trabalho camadas final+ (1)Trabalho camadas final+ (1)
Trabalho camadas final+ (1)
sampaio0612
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
Jaydson Gomes
 
Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1
Marcelo Zeferino
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Marco Antonio Maciel
 
Conceitos de Java Web
Conceitos de Java WebConceitos de Java Web
Conceitos de Java Web
Mateus Parente
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
Mario Sergio
 
Reutilização
ReutilizaçãoReutilização
Reutilização
emjorge
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
Opakus - Soluções Inteligentes
 
Jsf
JsfJsf
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotation
eduardo dias
 
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
Grupo Treinar
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
Rodrigo Cândido da Silva
 
Spring & Struts
Spring & StrutsSpring & Struts
Spring & Struts
eduan
 

Semelhante a JAVA REFLETCION (20)

Framework struts2v2.5
Framework struts2v2.5Framework struts2v2.5
Framework struts2v2.5
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em Java
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Artigo c#
Artigo c#Artigo c#
Artigo c#
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Oficina cake php
Oficina cake phpOficina cake php
Oficina cake php
 
Trabalho camadas final+ (1)
Trabalho camadas final+ (1)Trabalho camadas final+ (1)
Trabalho camadas final+ (1)
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
 
Conceitos de Java Web
Conceitos de Java WebConceitos de Java Web
Conceitos de Java Web
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
Jsf
JsfJsf
Jsf
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotation
 
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Spring & Struts
Spring & StrutsSpring & Struts
Spring & Struts
 

Mais de André Luiz Jamarino Abekawa

Desenho de serviço
Desenho de serviçoDesenho de serviço
Desenho de serviço
André Luiz Jamarino Abekawa
 
Manual de Usuário - TCC André Luiz Jamarino Abekawa
Manual de Usuário - TCC André Luiz Jamarino AbekawaManual de Usuário - TCC André Luiz Jamarino Abekawa
Manual de Usuário - TCC André Luiz Jamarino Abekawa
André Luiz Jamarino Abekawa
 
Manual Sistema - TCC André L. J. Abekawa (Parte 03)
Manual Sistema - TCC André L. J. Abekawa (Parte 03)Manual Sistema - TCC André L. J. Abekawa (Parte 03)
Manual Sistema - TCC André L. J. Abekawa (Parte 03)
André Luiz Jamarino Abekawa
 
Manual Sistema - TCC André L. J. Abekawa (Parte 01)
Manual Sistema - TCC André L. J. Abekawa (Parte 01)Manual Sistema - TCC André L. J. Abekawa (Parte 01)
Manual Sistema - TCC André L. J. Abekawa (Parte 01)
André Luiz Jamarino Abekawa
 
Monografia - André Luiz Jamarino Abekawa
Monografia - André Luiz Jamarino AbekawaMonografia - André Luiz Jamarino Abekawa
Monografia - André Luiz Jamarino Abekawa
André Luiz Jamarino Abekawa
 
TCC ANDRE ABEKAWA - Fatec (Primeira Versão)
TCC ANDRE ABEKAWA - Fatec (Primeira Versão)TCC ANDRE ABEKAWA - Fatec (Primeira Versão)
TCC ANDRE ABEKAWA - Fatec (Primeira Versão)
André Luiz Jamarino Abekawa
 

Mais de André Luiz Jamarino Abekawa (6)

Desenho de serviço
Desenho de serviçoDesenho de serviço
Desenho de serviço
 
Manual de Usuário - TCC André Luiz Jamarino Abekawa
Manual de Usuário - TCC André Luiz Jamarino AbekawaManual de Usuário - TCC André Luiz Jamarino Abekawa
Manual de Usuário - TCC André Luiz Jamarino Abekawa
 
Manual Sistema - TCC André L. J. Abekawa (Parte 03)
Manual Sistema - TCC André L. J. Abekawa (Parte 03)Manual Sistema - TCC André L. J. Abekawa (Parte 03)
Manual Sistema - TCC André L. J. Abekawa (Parte 03)
 
Manual Sistema - TCC André L. J. Abekawa (Parte 01)
Manual Sistema - TCC André L. J. Abekawa (Parte 01)Manual Sistema - TCC André L. J. Abekawa (Parte 01)
Manual Sistema - TCC André L. J. Abekawa (Parte 01)
 
Monografia - André Luiz Jamarino Abekawa
Monografia - André Luiz Jamarino AbekawaMonografia - André Luiz Jamarino Abekawa
Monografia - André Luiz Jamarino Abekawa
 
TCC ANDRE ABEKAWA - Fatec (Primeira Versão)
TCC ANDRE ABEKAWA - Fatec (Primeira Versão)TCC ANDRE ABEKAWA - Fatec (Primeira Versão)
TCC ANDRE ABEKAWA - Fatec (Primeira Versão)
 

JAVA REFLETCION

  • 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
  • 2. AGENDA • ARQUITETURA EM CAMADAS • JAVA REFLECTION • DEMONSTRAÇÕES • DISCUSSÃO
  • 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
  • 17. DUSCUSSÃO • Dúvidas? • Sugestões?
  • 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.