Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Re:aspectos

    (Puntos:0)
    por pobrecito hablador el Miércoles, 10 Mayo de 2006, 06:44h (#741217)
    soy el del comentario de antes,

    no entiendo que mejoras aporta el ejemplo puesto de AOP, con respecto al anterior codigo
    [ Padre ]
  • Re:aspectos

    (Puntos:3, Informativo)
    por sammael (16347) el Miércoles, 10 Mayo de 2006, 09:14h (#741269)
    ( http://barrapunto.com/ | Última bitácora: Lunes, 24 Febrero de 2014, 10:03h )
    con mi poca experiencia en AOP (no la he usado en proyectos grandes de verdad), te voy a poner otro ejemplo (el tipico que se suele usar para explicar esto) con lo que a lo mejor entiendes mejor de que va la historia y su utilidad

    el ejemplo es, hacer los logs de aplicacion

    imaginate que tienes una aplicacion, y que quieres que siempre que se llame a un metodo de cualquier clase, en el log se escriba una linea (indicando el nombre, los parametros pasados, etc)

    lo puedes hacer de muchas formas, la normal, la clasica, ha sido llamar a un metodo de otro objeto que se encargue de escribir en el log, y hacer esta llamada al principio de cada metodo...

    en aplicaciones grandes y complicadas, eso acaba teniendo varios problemas:
    - si a algun programador se le olvida hacer esto, el log queda incompleto y puede faltar informacion

    - aniade complejidad y tamanio a cada uno de los metodos, a veces eso complica el leer un metodo y entender que hace (exige mas trabajo)

    - si de repente se quiere cambiar el metodo de logs, habria que cambiar todas y cada una de las clases de la aplicacion (este problema es menor, pues los IDEs de hoy en dia ayudan bastante en esto, por otro lado una busqueda de texto te sacara la mayoria o todas las ocurrencias y demas, sin embargo el problema viene al tener que comprobar la aplicacion para ver que no has aniadido nuevos bugs (si, pruebas unitarias y demas ayudan, pero hay casos en que es complicado), sobre todo si tienes una aplicacion como la que tengo yo por aqui con 26.000 clases diferentes...

    aqui es donde el AOP viene muy a mano, creas un aspecto que sea "log" y dices que todas las clases de tu aplicacion lo llamen

    log resuelto, sin aniadir nada (o casi nada) a las clases existentes y todo programado en un lugar centralizado, si quieres cambiar algo, con irte al aspecto, todo solucionado

    por supuesto, tiene muchisimas mas utilidades, este es el ejemplo que se usa siempre por ser sencillo y facil de explicar, otro ejemplo seria para la autenticacion del usuario en aplicaciones donde eso se tiene que realizar varias veces (para comprobar si tiene permisos para hacer una accion o para saber si ya esta autentificado), puedes crear un aspecto que compruebe eso y utilizarlo en donde quieras de tu aplicacion sin aniadir complejidad a las clases especificas

    espero haberme explicado bien y que se me entendiera... en general el AOP me parece una cosa muy util para completar OOP, que aniado cierta complejidad pero que ayuda y mucho a hacer las cosas mas simples...
    --

    Dale fuego a un hombre y estara caliente un dia, prendele fuego y estara caliente el resto de su vida.
    [ Padre ]
    • Re:aspectos de Javier Noval (Puntos:2) Miércoles, 10 Mayo de 2006, 17:16h
      • Re:aspectos de sammael (Puntos:2) Jueves, 11 Mayo de 2006, 09:02h
        • Re:aspectos de Javier Noval (Puntos:1) Viernes, 12 Mayo de 2006, 17:03h
    • 1 respuesta por debajo de tu umbral de lectura actual.