Traducción a idiomas extranjeros 3000 palabras
Persistencia transparente
Esta capacidad se refiere a la persistencia de POJO en un almacenamiento persistente (generalmente una base de datos relacional) sin que los objetos tengan que hacer concesiones significativas orientadas a objetos. Vincula la discrepancia de impedancia relacional entre objetos y un marco que es responsable de asignar objetos persistentes a filas en un sistema de gestión de bases de datos relacionales, generando todo el código de lenguaje de consulta estructurado necesario para recuperar y almacenar los objetos. Las herramientas ORM realizan este mapeo en tiempo de ejecución utilizando técnicas como la reflexión, la generación dinámica de códigos de bytes o la mejora de códigos de bytes en los pasos de posprocesamiento.
La persistencia transparente libera a los objetos de dominio de la responsabilidad de gestionar su representación de persistencia, permitiéndoles contener lógica empresarial cuando corresponda sin confundirse con operaciones de persistencia. También mejora enormemente la productividad al eliminar la necesidad de escribir código de persistencia largo y, a menudo, propenso a errores. La persistencia transparente es un objetivo más que una realidad, pero las mejores soluciones ORM están cerca de lograrlo.
Inversión de control
El modelo POJO se puede aplicar a servicios empresariales a través de contenedores IoC. Estos permiten configurar objetos comerciales en tiempo de ejecución y disfrutar de servicios declarativos como la gestión automática de transacciones. La inversión de control es un término ampliamente utilizado, que en este caso se refiere al patrón 1, en el que el marco crea instancias de objetos de aplicación y los configura para su uso.
La inyección de dependencia es un tipo de IoC puro de Java que no depende de la API del marco y, por lo tanto, se puede aplicar a objetos que no conocen el marco, o que pueden haber sido escritos sin ningún conocimiento del marco. .
La configuración se logra mediante propiedades de JavaBean (inyección de definidor) o parámetros de constructor (inyección de constructor). Esto significa que el código de la aplicación no implementa ninguna interfaz de marco; el marco utiliza la reflexión para configurarlo. El marco inyecta dependencias como objetos de colaboración o parámetros de configuración sin requerir que las clases de aplicación realicen búsquedas explícitas, por ejemplo, en los métodos de configuración J2EE tradicionales basados en JNDI.
La inyección de dependencia es un concepto simple pero sorprendentemente poderoso. Dado que el marco es responsable de resolver las dependencias de los objetos colaboradores, puede introducir una variedad de valores agregados, como el soporte indirecto para la conexión en caliente y la generación sin código de servidores proxy que representan servicios remotos.
Programación orientada a aspectos
La inyección de dependencia es de gran ayuda para entregar modelos de aplicaciones POJO, pero no puede resolver algunos requisitos importantes, como la aplicación de la gestión de transacciones declarativas a métodos seleccionados. controles de seguridad, almacenamiento en caché personalizado, auditoría y más.
Persistencia transparente
Esta capacidad se refiere al almacenamiento persistente de POJO continuos y, a menudo, bases de datos relacionales, sin requerir que el objeto haga concesiones significativas orientadas a objetos. El marco Bridge Object Relational Impedance Mismatch es responsable de asignar objetos persistentes a filas en un sistema de gestión de bases de datos relacionales y de crear todo el código de lenguaje de consulta estructurado necesario para recuperar y almacenar los objetos. La herramienta Imipramine realiza este mapeo sobre la marcha utilizando técnicas como la reflexión, la generación dinámica de códigos de bytes o un paso de posprocesamiento de mejora del código de bytes.
Los objetos de dominio de publicación de persistencia transparente son responsables de gestionar su representación persistente para que puedan contener lógica empresarial cuando corresponda sin desencadenar acciones continuas. También aumenta enormemente la productividad sin tener que escribir errores frecuentes y detallados ni código continuo. Insistir en la transparencia es un objetivo, no una realidad, pero Mirex, la mejor solución, está cerca de lograr ese objetivo.
Control inverso
El modelo POJO se puede utilizar para servicios empresariales a través de un contenedor IoC. Estos permiten configurar objetos comerciales en tiempo de ejecución y disfrutar de servicios declarativos como la gestión automática de transacciones. El control de la espalda es un término ampliamente utilizado. En este caso, se refiere a los objetos e instancias de la aplicación en el marco del modelo que están configurados para su uso.
La inyección de dependencia es un tipo de IOC de Java puro que no depende de la API del marco, por lo que se puede aplicar a marcos que no conocen o pueden tener conocimiento literal de los objetos.
La configuración se logra a través de las capacidades de los componentes Java (inyección de definidor) o parámetros del constructor (inyección de constructor). Esto significa que el código de la aplicación no implementa ninguna interfaz de marco; el marco utiliza la reflexión para configurarlo. Parámetros como objetos dependientes o configuraciones se coinyectan dentro del marco sin la necesidad de realizar consultas explícitas sobre la categoría de la aplicación. Por ejemplo, la configuración J2EE se basa en el método JNDI tradicional.
La inyección de dependencia es un concepto simple pero sorprendentemente poderoso. Debido a que el marco es responsable de resolver las dependencias de los objetos colaboradores, puede asumir una variedad de valores agregados, como soporte indirecto para servicios remotos y de conexión en caliente representados por agentes de generación de código.
Programación orientada a aspectos
La inyección de dependencia no requiere mucho tiempo para proporcionar un modelo de aplicación POJO, pero no puede resolver algunas necesidades importantes, como la gestión de transacciones declarativas y la seguridad. para inspeccionar, personalizar el almacenamiento en caché y la auditoría para que los métodos seleccionados puedan verificarse fácilmente.
Las soluciones tradicionales a este problema tienen importantes deficiencias. Por ejemplo, el uso de código de plantilla para iniciar, materializar o revertir una transacción da como resultado que se utilice el mismo código en múltiples métodos. Además, diseñe patrones como decorar el código final de cortar y pegar. Los objetos solo se pueden utilizar para fines especiales, como el marco EJB, que proporciona un conjunto fijo de servicios y se ajusta a la API del marco y los contratos implícitos.
Spring framework proporciona una solución proxy AOP para complementar la inyección de dependencia. AspectJ, AspectWerkz y otras tecnologías AOP son más ambiciosas y ventajosas a la hora de modificar los aspectos más potentes del tejido del código de bytes en un modelo de objetos.