stringtranslate.com

Patrón de registro activo

En ingeniería de software , el patrón de registro activo es un patrón arquitectónico . Se encuentra en software que almacena datos de objetos en memoria en bases de datos relacionales . Fue nombrado por Martin Fowler en su libro de 2003 Patterns of Enterprise Application Architecture . [1] [2] La interfaz de un objeto que se ajuste a este patrón incluiría funciones como Insertar, Actualizar y Eliminar, además de propiedades que corresponden más o menos directamente a las columnas de la tabla de base de datos subyacente.

El patrón de registro activo es un enfoque para acceder a los datos de una base de datos . Una tabla o vista de una base de datos se envuelve en una clase . Por lo tanto, una instancia de objeto se vincula a una sola fila de la tabla. Después de la creación de un objeto, se agrega una nueva fila a la tabla al guardar. Cualquier objeto cargado obtiene su información de la base de datos. Cuando se actualiza un objeto, también se actualiza la fila correspondiente de la tabla. La clase contenedora implementa métodos de acceso o propiedades para cada columna de la tabla o vista.

Este patrón se utiliza habitualmente en herramientas de persistencia de objetos y en mapeo relacional de objetos (ORM). Normalmente, las relaciones de clave externa se expondrán como una instancia de objeto del tipo apropiado a través de una propiedad.

Implementaciones

Se pueden encontrar implementaciones del concepto en varios marcos para muchos entornos de programación. Por ejemplo, si hay una tabla partsen una base de datos con columnas name(tipo cadena) y price(tipo número), y el patrón Active Record está implementado en la clase Part, el pseudocódigo

parte = new Parte () parte . nombre = "Parte de muestra" parte . precio = 123 . 45 parte . guardar ()       

creará una nueva fila en la partstabla con los valores dados y es aproximadamente equivalente al comando SQL

INSERTAR EN partes ( nombre , precio ) VALORES ( 'Parte de muestra' , 123 . 45 );       

Por el contrario, la clase se puede utilizar para consultar la base de datos:

b = Part . find_first ( "nombre" , "caja de cambios" )   

Esto buscará un nuevo Partobjeto en función de la primera fila coincidente de la partstabla cuya namecolumna tenga el valor "gearbox". El comando SQL utilizado puede ser similar al siguiente, según los detalles de implementación de SQL de la base de datos:

SELECCIONAR * DE partes DONDE nombre = 'caja de cambios' LÍMITE 1 ; -- MySQL o PostgreSQL          

Crítica

Archivos grandes

Debido a que los datos y los métodos de acceso a la base de datos están en el mismo archivo, esos archivos terminan siendo más grandes.

Principio de responsabilidad única y separación de intereses

Otra crítica del patrón de registro activo es que, debido al fuerte acoplamiento de la interacción de la base de datos y la lógica de la aplicación, un objeto de registro activo no sigue el principio de responsabilidad única y la separación de preocupaciones . Esto se opone a la arquitectura de múltiples niveles , que aborda adecuadamente estas prácticas. [ cita requerida ] [ aclaración necesaria ] Debido a esto, el patrón de registro activo es mejor y más a menudo empleado en aplicaciones simples que son todas formularios sobre datos con funcionalidad CRUD , o solo como una parte de una arquitectura. [ cita requerida ] Por lo general, esa parte es el acceso a los datos y por eso varios ORM implementan el patrón de registro activo.

Véase también

Referencias

  1. ^ P del Catálogo EAA - Registro activo
  2. ^ Fowler, Martin (2003). Patrones de arquitectura de aplicaciones empresariales. Addison-Wesley. ISBN 978-0-321-12742-6.