2013-07-15

Patrón Generic Repository

Un apunte para que no se me olvide donde estan las ideas claves.

El Patrón Modelo de Dominio

En un diseño orientado al modelo de datos, comenzamos por diseñar la base de datos para después crear los componentes de negocio.
Cuando la complejidad del sistema crece, nuestro enfoque en los datos deja de tener importancia ya que debemos centrarnos en la funcionalidad y es entonces cuando un diseño orientado a datos deja de ser escalable.
El patrón modelo de dominio nos permite centrarnos en el comportamiento del sistema y en el flujo de datos que lo hace funcionar, además nos ayuda a obtener un modelo de objetos que es una representación del modelo conceptual del sistema.
El modelo de dominio describe las entidades que participan en el sistema, las relaciones y el flujo de datos que existe entre ellas, dichas entidades se mapean en clases que se componen de propiedades y métodos.
Un modelo de dominio es independiente de la base de datos y por tanto podemos reutilizarlo en otras aplicaciones.
Sin embargo el patrón modelo de dominio tiene un alto coste inicial, aunque a cambio ganamos un comportamiento lineal con respecto al aumento de la complejidad.
A diferencia de un diseño orientado al modelo datos, el diseño orientado al dominio es dirigido por los requerimientos y nos obliga a entender las reglas que definen el negocio y a modelarla a través de clases.

Patrón “Repository”
La primera vez que oímos hablar del patrón “Repository” fue en el famoso libro de Martin Fowler, Patterns of Enterprise Application Architecture, y la autoría se le atribuye a Edward Hieatt y Rob Mee.

Un repositorio es una clase que servirá como intermediario entre nuestra aplicación y nuestros datos, dicho con otras palabras, será una clase que nos ofrecerá una interfaz CRUD (Crear, Obtener, Actualizar, Borrar (Create, Read, Update, Delete)).

En este enlace hay un articulo muy bueno sobre este patron repository
http://blog.foxandxss.net/patron-repository
http://programandonet.com/web/patrones-de-diseo-repository/
http://kartones.net/blogs/coco/archive/2009/12/03/la-capa-de-negocio-vi-el-patr-243-n-modelo-de-dominio.aspx

Sobre inyeccion de dependencias
http://blog.foxandxss.net/dependency-injection-indice

No hay comentarios: