Download Presentación de PowerPoint
Document related concepts
no text concepts found
Transcript
27/05/2016 Optimización de Aplicaciones Orientada a Objetos aplicando Javabeans y la API Reflection de Java PEDRO JOSE ARIZA ACEVEDO PROGRAMACION ORIENTADA A OBJETOS Los sistemas de software deben evolucionar para responder a las cambiantes necesidades del cliente y la evolución de sus entornos. El paradigma de la programación orientada a objetos se encuentra inmerso en lenguajes de programación (C++, java, Delphi, etc) y los desarrolladores de software han aplicado sus métodos para generar productos finales. 1 27/05/2016 PRORAMACION ORIENTADA A OBJETOS PRORAMACION ORIENTADA A OBJETOS En los lenguajes orientados a objetos, variables de programa están a menudo ligados a estructuras de datos complejas que pueden superponerse. Este es el caso de los programas de Java, cuyos objetos (Encapculamiento) se almacenan en una memoria compartida denominada “heap”. 2 27/05/2016 JAVABEANS Un JavaBean es una clase puramente (Abstracción) Java desarrollada con unos patrones de diseño bien definidos, que permiten que sea usada en posteriores aplicaciones y permiten gestionar los componentes de forma automática. JavaBeans representa una implementación del modelo Propiedad-EventoMétodo. JAVABEANS Un componente JavaBean se define a través de: • Las propiedades que expone. • Los métodos que ofrece • Los eventos que atiende o genera 3 27/05/2016 JAVABEANS REFLECTION Reflection es la capacidad de un programa para manipular datos como algo que representa el estado del programa durante su ejecución. 4 27/05/2016 REFLECTION Hay dos aspectos de este tipo de manipulación: la introspección y la intercesión. La introspección es la capacidad de un programa para observar y, por lo tanto, razón acerca de su propio estado. La intercesión es la capacidad de un programa para modificar su propio estado de ejecución o alterar su propia interpretación o significado. API REFLECTION DE JAVA La API Reflection de Java proporciona una forma dinámica para manipular un objeto en tiempo de ejecución. Tiene la capacidad de examinar o modificar el comportamiento en tiempo de ejecución de las aplicaciones que se ejecutan en la máquina virtual de Java. 5 27/05/2016 CLASES DE LA API REFLECTION Nombre de la clase Descripción java.lang.reflect.Constructor Proporciona información y acceso sobre un método constructor java.lang.reflect.Method. Proporciona información y acceso a un método java.lang.reflect.Array Proporciona métodos estáticos para crear y acceder dinámicamente a los arrays. java.lang.reflect.Member Interfaz que refleja información sobre un miembro de una clase (atributo, método o constructor) java.lang.reflect.Field Proporcionan información y acceso dinámico a un atributo de una clase. El atributo puede ser de clase (static) o de instancia java.lang.Class Representa clases e interfaces METODOS DE LA API REFLECTION Nombre de la clase java.lang.Package java.lang.ClassLoader Descripción Proporciona información sobre un paquete. Clase abstracta. Proporciona servicios para cargar clases dinámicamente java.lang.Class forName Carga una clase del classpath a partir de su nombre (nombre completo, con todos los paquetes. Métodos en Clases Devuelve el nombre de la clase reflejada por este objeto Class. Devuelve cierto si la clase es un interfaz. Devuelve cierto si la clase es un array Devuelve el objeto Class que representa a la clase base de la clase actual public String getName() public boolean isInterface( ) public boolean isArray( ) public Class getSuperclass( ) public Class[] getInterfaces( ) public Object newInstance( ) Devuelve un array de objetos Class que representan los interfaces implementados por esta clase. Crea una instancia de esta clase (invocando al constructor por defecto) public Constructor[] getConstructors( ) public Method[] getDeclaredMethods( ) public Method[] getMethods( ) Devuelve un array con todos los constructores públicos de la clase actual. Devuelve un array de todos los métodos públicos y privados declarados en la clase actual. Devuelve un array de todos los métodos públicos en la clase actual, así como los declarados en todas las clases base o interfaces implementados por esta clase public Method getMethod( String Devuelve un objeto Method que representa el método público methodName, Class[] paramTypes ) identificado por su nombre y tipo de parámetros, declarado en esta clase o heredado de una clase base. 6 27/05/2016 REFLECTION EN FRAMEWORKS Los FrameWorks, se pueden considerar como Sistemas los cuales embeben soportes definidos como componentes o módulos de software. Son de gran utilidad para minimizar el coste de código y optimización de tiempos, ejemplo Spring, hibernate. Aplicación Sin API Reflection – Caso Cabecera de Reportes Personas. public void cabecera(){ jLabel1.setText("LISTADO DE "); String col[] = {"cedula","nombre”}; String data[][] = {}; model = new DefaultTableModel(data,col); jTable1.setModel(model); jLabel1.setText(jLabel1.getText() + Metodos.etiqueta.toUpperCase()); } 7 27/05/2016 Aplicación de API Reflection – Caso Cabecera de Reportes 8 27/05/2016 CONCLUSIONES • La programación orientada a objetos tradicional no optimiza procesos, ni reduce el coste de implementación de un proyecto de software orientado a objetos. • Con la API Reflection de Java y JavaBeans, se optimizan los métodos tradicionales de la programación orientada a objetos. • La API Reflection de Java y JavaBeans, permite al programador realizar instancias dinámicas de objetos e introspección de ellos en tiempo de ejecución CONCLUSIONES • Aplicando la API reflection de Java se reduce la sobrecarga de métodos utilizado en la Programación orientada a objetos tradicional. • Aplicando los métodos nativos de la API Reflection de Java de forma eficiente, se pueden crear métodos prototipo, optimizando costos de código y tiempo. • Con la API Reflection de Java se pueden construir FrameWorks para enlazar con bases de datos relacionales 9