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