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.