Edson Susumu Asaga susumu@computer.org JavaBeans Edson Susumu Asaga susumu@computer.org.

Slides:



Advertisements
Apresentações semelhantes
Sistemas distribuídos
Advertisements

Modificadores Marco Antonio, Arquiteto de Software – TJDF Atualizado em Novembro/2008.
Classes C++ Class nome da classe { private: membros privados
Padrão de Projeto Iterator
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Orientação a Objetos e Java Graduação em Ciência da Computação Paulo Borba © Centro de Informática, UFPE.
Classes Revisando: –Forma de implementação de estruturas específicas –Atributos (grupos de dados) –Métodos (conjuntos de procedimentos)
JAVA Linguagem Ambiente de Desenvolvimento
Universidade Católica de Angola Prática de laboratório Fundamentos de Programação II Frei Joaquim José Hangalo.
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
JavaServer Faces Rapid Web Application Development em Java Ricardo Cavalcanti Jobson Ronan
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Feapa Prof Osiel Marlon Disciplina: Engenharia de Software 2009 Curso: Sistemas de Informação.
Orientação a Objetos e Java Graduação em Ciência da Computação Alexandre Mota © Centro de Informática, UFPE.
Aula 3. ListView ListView é um componente que mostra uma lista de itens Os itens da lista são automaticamente inseridos usando um adapter, implementado.
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Tratamento de exceções em Java Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de.
PROGRAMANDO EM JAVA Dilvan Moreira (baseado no livro Big Java)
PROGRAMAÇÃO ORIENTADA A OBJETOS EM C++ Professor: Dilvan Moreira.
TÉCNICO EM INFORMÁTICA Linguagem e Técnica de Programação III PROF. MARCELO N. SANTOS
Desenvolvimento de Aplicações Web com Java - Servlets e JSP Autor: Juliano Marcos Martins.
TDD usual abordagem normal é BOTTOM-UP não é necessário nenhum projeto anterior.
Modelagem Orientada a Objetos com UML Cursos para a CTI - IME/USP Dairton Bassi, Hugo Corbucci e Mariana Bravo Departamento de Ciência.
Programação em Java JButton e Tratamento de Eventos Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
Programação em Java Threads Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
Disciplina: Estrutura de Dados Professor: Jeovane Reges Caxias – MA 2015 ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO.
Classes Objetos Atributos Métodos Coletor de Lixo (Garbage Collector ) Confraria do Java Nivelamento. Caroline, Marcelo e Luiz 12/05/2007.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal
(baseado em slides de ex-alunos)
INF1007: Programação 2 2 – Alocação Dinâmica
Introdução OO.
Linguagens de Programação Conceitos e Técnicas
Introdução Java.
3.1 Classes e Objetos Em um programa orientado a objetos normalmente existem vários objetos de um mesmo tipo. Por exemplo, um programa de controle de.
Programação para Android Prof. Rone Ilídio - UFSJ
Java: Interfaces Alcides Calsavara.
Singleton e Template Method
Unidade IV– Relacionamento entre Objetos
Testes e Qualidade de Software
Programação Orientada a Objetos
4 CONCEITOS BÁSICOS EM POO
Programação Orientada a Objetos
ASP.NET Passo a Passo Criando um CRUD de uma tabela com informação referenciada em outra Conteúdo do Capítulo Implementar um CRUD de uma tabela contendo.
Tipos de Arquivos Arquivos podem armazenar caracteres (arquivo texto) ou bytes (arquivos binários); Na prática, arquivos textos são abertos por editores.
MAC Tópicos de POO Secret Partner Pattern / Facet
Introdução a Redes v5.1 Capítulo 7: Endereçamento IP.
Programação Orientada a Objetos*
Unidade VI – Exceções e Interfaces
Remote Method Invocation
Estrutura do Sistema Operacional
Programação Orientada a Objetos*
3.2 Sobrecarga de Métodos (Overloading)
Rosemary Silveira Filgueiras Melo
Programação Orientada a Objetos
Programação para dispositivos moveis Fabiano Gonçalves dos Santos Aula 10.
Rosemary Silveira Filgueiras Melo
MODELO DE REFERÊNCIA OSI
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Arquitetura e padrões de software
Linguagem Concorrente com Compartilhamento de Variáveis
Coleções em Java 1.
Ordenando Coleções A Classe Collections.
A interface java.util.List
Aplicação com Várias Janelas
Percorrendo coleções com Iterator
Programação de Computadores II
Programação de Computadores II
Transcrição da apresentação:

Edson Susumu Asaga susumu@computer.org JavaBeans Edson Susumu Asaga susumu@computer.org

O que é um Bean? Um JavaBean é um componente de software reutilizável que pode ser manipulado visualmente em uma ferramenta de construção.

O que caracteriza um Bean? A ferramenta de construção pode analisar suas características através de introspeção Pode se comunicar com outros objetos gerando eventos Suas propriedades podem ser personificadas usando a ferramenta de construção ou acessadas programaticamente Suporta persistência de forma que possa ser gravado depois de personalizado

Propriedades São atributos com nome de um Bean Java que podem afetar sua aparência ou comportamento Podem ser Somente de leitura Somente de escrita De leitura e escrita A operação de escrita de uma propriedade pode ter efeitos colaterais

Eventos São a mensagens que componente (Fonte do evento) envia para outros (Ouvintes) notificando a ocorrência de um acontecimento determinado. Os ouvintes de um evento implementam a interface através da qual receberão notificações do evento. A fonte do evento: Conhece os ouvintes do evento. Fornece funções padronizadas para registro e retirada de ouvintes do evento.

Métodos São métodos comuns podem ser chamados por outros objetos. A forma padrão é expor todos os métodos públicos de um Bean, mas um Bean pode escolher expor somente um subconjunto de seus métodos públicos.

Persistência Um Bean deve implementar a interface Serializable ou Externalizable para suportar o uso das APIs Java de serialização para implementar persistência Uma ferramenta também pode gerar código para restaurar o estado de um Bean

Introspecção Processo através do qual as ferramentas de construção descobrem as características dos Beans. Existem duas alternativas para informar as características de um Bean: Aderindo a convenções de nomenclatura. Fornecendo explicitamente informação sobre as características através de uma classe de informação de Bean. A classe de informação de Bean implementa um interface interface padrão, BeanInfo.

Convenções de Nomenclatura: Propriedade Para uma propriedade xxx do tipo T: método de leitura: getXxx(): T. Se T for boolean pode ser isXxx(): boolean ou getXxx(): boolean. método de escrita: setXxx(T).

Convenções de Nomenclatura: Evento Para um evento Yyy: método de registro de ouvintes addYyyListener(YyyListener). método de retirada de ouvintes removeYyyListener(YyyListener). a interface YyyListener estende a interface sem método java.util.EventListener e declara funções de notificação.

Beans e Concorrência Bean Java pressupõe um ambiente concorrente onde vários threads diferentes podem estar simultaneamente enviando eventos ou chamando métodos ou acessando propriedades O desenvolvedor do Bean deve garantir que o Bean se comporte apropriadamente sob acesso concorrente Para Beans simples isto pode ser tratado simplismente fazendo todos métodos sincronizados

Exemplo: TemporizadorListener package beanTemporizador; public interface TemporizadorListener extends java.util.EventListener { void temporizadorDisparou(Temporizador t); }

Exemplo: Propriedade intervalo package beanTemporizador; public class Temporizador implements Serializable { private long intervalo; public long getIntervalo() { return intervalo; } public void setIntervalo(long intervalo) { this.intervalo = intervalo;

Exemplo: Propriedade repetitivo public class Temporizador implements Serializable { private boolean repetitivo; public boolean isRepetitivo() { return repetitivo; } public void setRepetitivo(boolean repetitivo) { this.repetitivo = repetitivo;

Exemplo: addTemporizadorListener public class Temporizador implements Serializable { private transient ArrayList listenerList; public synchronized void addTemporizadorListener( TemporizadorListener listener) { if (listenerList == null ) { listenerList = new ArrayList(); } listenerList.add (listener);

Exemplo: removeTemporizadorListener public class Temporizador implements Serializable { private transient ArrayList listenerList; public synchronized void removeTemporizadorListener( TemporizadorListener listener) { if (listenerList != null ) { listenerList.remove(listener); }

Exemplo: dispareTemporizador public class Temporizador implements Serializable { private transient ArrayList listenerList; private void dispareTemporizador() { java.util.ArrayList list; synchronized (this) { list =(ArrayList)listenerList.clone(); } for (int i = 0; i < list.size (); i++) { ((TemporizadorListener)list.get(i)). temporizadorDisparou(this);

Introspector É uma classe utilitária que examina os Beans de acordo com as convenções de nomenclatura para descobrir suas características. Utiliza a API de reflexão. Possui o método getBeanInfo(Class): BeanInfo. Este método recebe uma Class e retorna um objeto que implementa a interface java.beans.BeanInfo que informa as propriedades, métodos e eventos do Bean.

Empacotamento de Beans Beans são empacotados e distribuídos em arquivo compactado do tipo JAR que contem: Arquivos de classes compiladas do Bean (.class) Arquivo manifesto que é um arquivo texto num formato padronizado que indica quais são as classes que são Beans

Referência Página JavaBeans na Web: http://java.sun.com/products/javabeans