Componentes
Un componente es un modulo de software independiente, que puede ser reemplazado y es una parte de un sistema de software dentro de una arquitectura bien definida. Un componente se ensambla a una arquitectura debido a que realiza o implanta un conjunto de interfaces.
El modelo de componentes es una arquitectura y un API que permite a los desarrolladores a definir segmentos reutilizables de c�digo y que pueden ser reutilizados para crear programas.
Un desarrollo basado en componentes (CBD) consiste en la creaci�n y liberaci�n de software ensamblado a partir de componentes
Java Beans
Java Beans es el modelo de componentes con tecnolog�a Java.
Con el API de JavaBeans se pueden crear componentes reutilizables e independientes de la plataforma de hardware/sistema operativo. Y usando herramientas IDE compatibles con Java Beans, se pueden combinar dichos componentes en aplicaciones, GUI, o nuevos componentes. Los componentes del modelo de Java Beans son conocidos como Beans.
Los componentes exponen sus caracter�sticas (por ejemplo m�todos y eventos) para que puedan ser manipulados por herramientas IDE.
Las caracter�sticas de un Bean son expuestas debido a que los nombres de las mismas se adhieren a un patr�n de dise�o espec�fico. Una herramienta IDE habilitada para JavaBeans puede examinar los patrones del Bean, discernir sus caracter�sticas y exponer dichas caracter�stcas para una manipulaci�n visual.
Una herramienta IDE mantiene a un Bean en una paleta o caja de herramientas. Se puede seleccionar el Bean de la paleta, arrastarlo a una forma gr�fica o no gr�fica, modificar su aparencia y comportamiento, definir su interacci�n con otros Beans e integrarlos con otros Beans, aplicaciones o otros m�dulos de software. Todo eso se puede hacer sin tener que escribir una cantidad enorme de c�digo
La siguiente lista describe los conceptos claves de un JavaBean:
- Las herramientas IDE descubren las caracter�sticas de un Bean (sus propiedades, m�todos y eventos) por medio de un proceso conocido como introspecci�n.
Un Bean soporta la introspecci�n de dos maneras:
Implictamente,siguiendo reglas especificas o patrones de dise�o.
Explicitamente, indicando las propiedades, m�todos y eventos en una clase de informaci�n del Bean. En Java se indica con una interfase denominada BeanInfo, la cual es implantada por cada Bean que se quiera describir.
- Las propiedades son la apariencia de un Bean y las caracter�sticas de comportamiento que pueden ser cambiadas al momento de dise�ar la aplicaci�n. Las herramientas IDE inspeccionan a un Bean para descubrir sus propiedades y exponerlas para su manipulaci�n.
- Los beans usan eventos para comunicarse con otros Beans. Un Bean que quiere recibir un evento (un Bean escucha o suscriptor) registra su interes con el Bean que dispara el evento (el Bean origen). Las herramientas IDE pueden examinar a un Bean y determinar que eventos genera y puede recibir.
- Los m�todos de un Bean no difieren de los m�todos Java y pueden ser invocados desde otros Beans o ambientes de Scripts. Por omisi�n, todos los m�todos publicos son exportados.
- Persistencia habilita a los Beans a guardar y restaurar su estado. Una vez que se han cambiado las propiedades de un Bean, es posible guardalas y restaurarlas.
Desarrollo de un Java Bean
Un Java Bean debe tener una serie de propiedades, m�todos y eventos. Al construirlo se deben crear
Las reglas o patrones de dise�o son las siguientes:
- Las propiedades se declaran privadas, pero deben ser accesibles via dos m�todos, getPropiedad para lectura y setPropiedad para escritura
- Los m�todos deben ser publicos y de preferencia que no reciban par�metros ni retornen resultados
- Un Evento de un JavaBean debe extender a la clase java.util.EventObject y cuyo constructor recibe una referencia un objeto de tipo java.lang.Object
- Una interfaz que escuche los eventos, debe extender a la interfaz java.util.EventListener y debe declarar los m�todos que recibie el escucha, y dichos m�todos deben recibir como par�metro una referencia al objeto Evento
- El Bean debe proveer dos m�todos
Construccion de un JavaBean utilizando NetBeans
Pasos
- Montar un directorio donde se va a depositar el c�digo fuente.
- En ese directorio, indicar New->Beans->Java Bean
- En la forma de Construcci�n, nombrarlo como PininoBean
- A la clase PininoBean generada, expandirla desde la herramienta Explorer, donde muestra 4 subopciones. Seleccionar la que dice Bean Patterns.
- Se puede observar que ya existe una propiedad, dejarla
- Crear un Evento, usando el siguiente c�digo.
- Crear la interfaz para los interesados en el Evento, usando el siguiente c�digo.
- Seleccionar dentro de la clase, Bean Patterns y activar Add->Unicast Event Source, con el fin de generar
c�digo para generar Eventos
- En la forma indicar : Type-> PininoEvent, Se�alar Generate Implementation, Generate Event Firing Methods y Pass Event as Parameter. Observar que se generan 3 m�todos
- Agregar a PininoBean el siguiente m�todo
- Compilar
Desarrollo de aplicaciones con JavaBeans y utilizando NetBeans
- Seleccionar la clase PininoBean y en Tools->Add Component to Palett
- Indicar New-> GUI Forms->JFrame y con nombre PininoGUI. Indicar que el Layout es Null
- Arrastar un JButton
- Dentro de la paleta de componentes, seleccionar la pesta�a Beans y seleccionar PinoinoBean, arrastrandolo a
la forma Grafica
- Poner la interfaz de dise�o en estado Connection Mode. Seleccionar el Boton y luego el PininoBean
- Dispara un Wizard , en la pagina Select Source Event seleccionar action->actionPerformed, en la pagina
Specify Target Operation indicar Method y seleccionar al metodo disparar
- Seleccionar PininoBean en la paleta de componentes, generando a pininoBean2
- Poner la interfaz de dise�o en estado Connection Mode. Seleccionar pininoBean1 y pininoBean2
- Dispara un Wizard , en la pagina Select Source Event seleccionar pininoEventListener->manejar, en la pagina
Specify Target Operation indicar Set Property y seleccionar la propiedad, en la pagina Enter Parameters indicar Value y poner Hola
- Compilar el codigo de PininoGUI
- Ejecutarlo
Con esto se ilustra el concepto de Componentes, donde se puede observar que no es necesario codificar con este modelo de desarrollo.