Persistencia de clases sin bases de datos orientadas a objetos: superobjeto y esquema de persistencia
Resumen
El texto presenta dos enfoques para resolver la persistencia de clases cuando no se dispone de bases de datos orientadas a objetos: el superobjeto persistente y el esquema de persistencia con clases intermediarias. Explica sus ventajas e inconvenientes, como la complejidad de responsabilidades y el acoplamiento frente a la cohesión y el rendimiento. También incluye cuatro estrategias para administrar sistemas heredados durante la evolución del software: desechar, mantener, reemplazar o someter a reingeniería.
Puntos clave
- El superobjeto persistente consiste en una clase SuperObjetoPersistente de la que heredan las clases que necesitan persistencia, con métodos de materializar y desmaterializar.
- La principal desventaja del superobjeto es que mezcla responsabilidades no relacionadas y limita la herencia si el lenguaje no admite herencia múltiple, pudiendo usarse una interfaz.
- El esquema de persistencia introduce clases de persistencia entre la capa de negocio y la capa de administración de datos, lo que mejora la cohesión.
- El esquema de persistencia aumenta la complejidad de implementación y puede afectar al rendimiento por el mayor número de clases.
- Las cuatro estrategias para sistemas heredados son desechar el sistema, mantenerlo sin cambios, reemplazarlo total o parcialmente y someterlo a reingeniería.
Soluciones para la Persistencia de Clases sin Bases de Datos Orientadas a Objetos
Existen dos posibilidades principales para resolver el problema de la persistencia de clases en almacenamiento persistente cuando no se dispone de bases de datos orientadas a objetos (OO). A continuación, se describen ambos enfoques, junto con sus ventajas y desventajas.
Superobjeto Persistente
Este enfoque implica la creación de una clase denominada SuperObjetoPersistente. Esta clase define los métodos esenciales para la persistencia:
- Materializar: Convierte una tabla de la base de datos en un objeto, dotándolo de comportamiento.
- Desmaterializar: Realiza la operación inversa a la materialización, eliminando el comportamiento de los objetos para convertirlos en tablas.
Las clases que requieren persistencia heredan de la clase SuperObjetoPersistente.
Ventajas del Superobjeto Persistente
- Implementación rápida.
- Simplicidad conceptual.
- Potencialmente mejor rendimiento.
Desventajas del Superobjeto Persistente
- Responsabilidades complejas y no relacionadas: Los métodos de materialización y desmaterialización no son responsabilidades inherentes a la clase que necesita persistencia.
- Limitaciones con la herencia: Si el lenguaje de programación no admite herencia múltiple, las clases que necesitan persistencia no pueden heredar de otras clases.
- Alternativa con interfaces: En ausencia de herencia múltiple, se puede utilizar una relación de realización, donde SuperObjetoPersistente se convierte en una interfaz.
- Acoplamiento: Se introduce acoplamiento entre la capa lógica y la capa de administración de datos.
Esquema de Persistencia
Este enfoque introduce una capa de persistencia entre la capa lógica de negocio y la capa de administración de datos. Se crean clases intermediarias, denominadas clases de persistencia, que actúan como puente entre los gestores de la aplicación y las entidades con la base de datos. Cada clase de persistencia se encarga de materializar y desmaterializar los objetos de una clase específica que necesita persistencia.
Ventajas del Esquema de Persistencia
- Mejora la cohesión: Evita que las clases de negocio tengan la responsabilidad de la persistencia.
- Principio de inversión de control:
- El gestor solicita a la capa de persistencia una operación para una clase específica.
- La capa de persistencia busca el objeto.
- La capa de persistencia guarda el objeto en la capa de administración de datos.
- El gestor solicita a la capa de persistencia una operación para una clase específica.
- La capa de persistencia busca el estado del objeto en la base de datos.
- La capa de persistencia devuelve el objeto a la capa lógica de negocio.
Desventajas del Esquema de Persistencia
- Mayor complejidad en la implementación.
- Posible impacto en el rendimiento debido a la mayor cantidad de clases involucradas.
Estrategias para la Administración de Sistemas Heredados en la Evolución del Software
Durante el proceso de evolución del software, es común encontrarse con la necesidad de administrar sistemas heredados. Existen cuatro estrategias principales para abordar esta situación:
Desechar el Sistema Completamente
Esta opción es adecuada cuando el sistema ya no aporta valor a los procesos empresariales. Suele ocurrir cuando los procesos han cambiado significativamente desde la implementación del sistema y ya no dependen de él.
Mantener el Sistema sin Cambios
Se elige esta opción cuando el sistema sigue siendo necesario, es estable y los usuarios realizan pocas solicitudes de cambio.
Reemplazar Total o Parcialmente el Sistema
Esta estrategia se aplica cuando factores como la obsolescencia del hardware impiden que el sistema siga operando, o cuando existen sistemas comerciales que permiten un desarrollo más económico. A menudo se adopta un enfoque de reemplazo evolutivo, sustituyendo componentes grandes por sistemas comerciales y reutilizando otros componentes cuando es posible.
Someter el Sistema a Reingeniería
Esta opción es viable cuando la calidad del sistema se ha degradado debido a cambios continuos, pero aún se requieren modificaciones. El proceso puede incluir el desarrollo de nuevas interfaces para que el sistema original pueda interactuar con sistemas más modernos.
Descargar
PDF Word HTMLPreguntas frecuentes
¿Qué es un superobjeto persistente?
Es una clase llamada SuperObjetoPersistente que define los métodos de materialización y desmaterialización, y de la que heredan las clases que necesitan persistencia.
¿Cuál es la principal ventaja del esquema de persistencia frente al superobjeto?
Mejora la cohesión, ya que evita que las clases de negocio tengan la responsabilidad de la persistencia.
¿Cuándo conviene reemplazar un sistema heredado?
Cuando factores como la obsolescencia del hardware impiden que el sistema siga operando, o cuando existen sistemas comerciales que permiten un desarrollo más económico.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.