A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Edson Susumu Asaga susumu@computer.org JavaBeans Edson Susumu Asaga susumu@computer.org."— Transcrição da apresentação:

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

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

3 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

4 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

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

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

7 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

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

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

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

11 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

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

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

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

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

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

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

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

19 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

20 Referência Página JavaBeans na Web:


Carregar ppt "Edson Susumu Asaga susumu@computer.org JavaBeans Edson Susumu Asaga susumu@computer.org."

Apresentações semelhantes


Anúncios Google