Entiendo los principios, pero me resulta difícil ver dónde están las aplicaciones prácticas fuera de algunas. Por favor, ilumíname;)Además del registro y la gestión de transacciones, ¿cuáles son algunas aplicaciones prácticas de AOP?
Respuesta
Pregunte a cualquier persona de apoyo: el registro es no una buena aplicación de AOP. No les importa qué método se llama dentro de la aplicación. Se preocupan por las acciones importantes que la aplicación está realizando y necesitan que la información se presente de una manera que entiendan. Para crear registros decentes, debe tratar el registro como otra interfaz de usuario a la aplicación y diseñarlo en consecuencia.
Sería más exacto decir que AOP se puede utilizar para implementar trazando.
Y tampoco estoy seguro de que sea útil para la gestión de transacciones. Descubrí que la delegación simple de OO separa claramente la gestión de transacciones y la lógica empresarial.
Aún así, buena pregunta! He encontrado que los argumentos para AOP caen en dos campos:
- Bodging cambia a código mal diseñado sin tener que limpiar el diseño pobre.
- Trabajar con herramientas de desarrollo deficientes, como el rastreo de trama en una aplicación porque el entorno no tiene un buen soporte para el rastreo o la depuración.
AOP es bastante útil cuando tienes una aplicación heredada grande y quieres hacer un cambio general en toda la aplicación.
Recientemente lo utilicé para particionar el alcance de la sesión http utilizando una cookie adicional (que no sea la identificación de la sesión). Rápidamente alivió un montón de dolor del código de la sesión mal escrita.
también comprobación Glassbox por un muy buen ejemplo de cómo AOP puede ayudar en la toma de peso ligero herramientas de control y gestión del rendimiento
Tanto la gente de primavera como el comité de especificaciones EJB3 piensan que AOP es útil para transacciones declarativas.
Seguridad, por supuesto.
"AOP en acción" tiene un ingenioso ejemplo que muestra cómo usar AOP para aplicar reglas de arquitectura, como la no invocación del nivel de persistencia fuera del nivel de servicio.
Qi4j, el último cerebro de Rickard Oberg, utiliza AOP para modificaciones de clase dinámicas. Todavía tengo que entenderlo por completo, pero si Rickard lo está presionando, todos querremos saberlo algún día.
Acabo de comenzar a explorar cómo podría usar AOP. Hasta el momento lo he usado para la inyección de dependencias y para implementar una interfaz para admitir el enlace de datos bidireccional en algunos códigos de UI.
- 1. ¿Cuáles son algunas aplicaciones prácticas del algoritmo ROT13?
- 2. Cuáles son algunas aplicaciones prácticas de XOR en los algoritmos
- 3. ¿Cuáles son algunas aplicaciones de importancia económica del aprendizaje automático?
- 4. ¿Cuáles son las aplicaciones prácticas de Colas?
- 5. ¿Cuáles son los posibles casos de uso de AOP?
- 6. ¿Cuáles son algunas aplicaciones destacadas del mundo real de Java?
- 7. JavaScript curry: ¿cuáles son las aplicaciones prácticas?
- 8. ¿Cuáles son algunas de las mejores prácticas de administración de memoria de Java?
- 9. ¿Cuáles son las mejores prácticas para la gestión de id. De evento?
- 10. Además de singletons, ¿cuáles son algunas de las razones convincentes para usar métodos estáticos en PHP?
- 11. ¿Cuáles son las ventajas prácticas del currying?
- 12. ¿Cuáles son algunas características útiles de TextMate?
- 13. Gestión de transacciones Django
- 14. ¿Cuáles son algunas de las mejores prácticas de uso de la Biblioteca estándar de C++?
- 15. cuáles son las mejores prácticas en el desarrollo de aplicaciones utilizando semántica Jena y RDF
- 16. Mejores prácticas de transacciones
- 17. ¿Cuáles son algunas características interesantes del código fuente de EveryBlock.com?
- 18. ¿Cuáles son algunas de las alternativas del pagerank?
- 19. ¿Cuáles son los problemas de actualización de aplicaciones de Android y las mejores prácticas?
- 20. ¿Cuáles son las mejores prácticas en la interoperabilidad del lenguaje?
- 21. ¿Cuáles son algunas buenas maneras de hacer el bloqueo intermachine?
- 22. ¿Cuáles son las "consecuencias prácticas" del uso de referencias suaves?
- 23. ¿Cuáles son algunas de las mejores prácticas para administrar subprocesos de fondo en IIS?
- 24. Buenas prácticas de transacciones NHibernate
- 25. MVC3 y EF Data first: ¿cuáles son las mejores prácticas?
- 26. ¿Cuáles son algunas de las mejores prácticas para mantener múltiples versiones de un proyecto?
- 27. ¿Cuáles son algunas de las mejores prácticas y "reglas generales" para crear índices de bases de datos?
- 28. Mejores prácticas para aplicaciones JUnit y RMI, registro RMI
- 29. ¿Cuáles son algunas de las mejores prácticas de diseño orientadas a objetos?
- 30. ¿Cuáles son las mejores prácticas para la lectura y escritura de datos intensivos en una HD?
para DI, ¿por qué no spring o spring.net? (a menos que tal vez estés en otro idioma?) – miguel