miércoles, 6 de mayo de 2009

Reflection

bueno hoy me lanzo a publicar algo de programación, en esta ocasion sera acerca de algo llamado reflection, ¿Qué es reflection?, reflection es un proceso en el cual el programa puede examinar y modificar su propia estructura y comportamiento, este tipo de programacion es la llamada programacion reflexiva, las ventajas de este tipo de programacion son varias, principalmente para convertir objetos a estructuras de datos , esto se usa normalmente para serializar , las aplicaciones pueden autoserializarse para convertir xml, extraer comportamientos, fabricar librerias inteligentes y muchas cosas mas, las posibilidades son bastantes, en cuanto a lo que se puede hacer.

aqui tenemos un ejemplo de uso de reflection.

public Object pullObjectFromProperty(Object o, String property) throws Exception {
//gets the current class
Class _class = o.getClass();
//gets the field of the object
Field field = _class.getDeclaredField(property);
Object result = null;
field.setAccessible(true);
//assign the value of the field to a result
result = field.get(o);
return result;
}

el siguiente fragmento puede sacar el valor del objeto conociendo el nombre del campo, tambien es posible obtener una lista de campos del objeto, una vez que conocemos esto podemos sacar las propiedades del objeto, tambien es posible invocar metodos o en dado caso obtener los metodos y saber como invocarlos, esto proporciona muchas ventajas a la hora de programar, podemos extraer la informacion de las superclases, interfaces y demas, todo esto y mas nos permite reflection, esto se genera al momento de ejecucion, como todo no debe de abusarse de esta tecnologia, debido a que puede hacer que una aplicacion disminuya su rendimiento, muestre comportamientos no adecuados, genere cosas inesperadas, sin embargo bien utilizada puede ser la herramienta perfecta.

recomiendo el siguiente libro de reflection, excelente libro.



http://www.manning.com/forman/

No hay comentarios: