Genéricos
El uso de los genéricos es una de las más poderosas implementaciones del .NET, surgió en la versión 2 del Framework y nos permite parametrizar el tipo de que almacenan y manipulan, las clases, las estructuras, las interfaces, los delegados, y los métodosSi a una interface le agregamos el uso de Genéricos, el código se convierte en algo más poderoso, ya que podemos definir interfaces que no requieren que se establezca el tipo de los objetos en tiempo de diseño o codificación. Con el uso de los Genéricos, incluso el tipo de la clase que puede ser usado en la interface en tiempo de ejecución. Lo único que debemos hacer es cambiar el nombre de nuestra entidad, por la letra T mayúscula.
Patrón de repositorio
http://www.martinfowler.com/eaaCatalog/repository.htmlEn proyectos con un modelo de dominio complejo el acceso al depósito donde se mantiene la persistencia de los objetos, juega un papel muy importante en la aplicación.
Al ser una capa tan valiosa es natural que nos preocupemos por controlarla y normalizarla.
Hay muchas aproximaciones, sin embargo hay una que se ha puesto entre los primeros lugares de popularidad. El patrón de Repositorio.
El repositorio es la clase que se encarga de mediar entre las clases en memoria y el depósito de datos. El principal objetivo de este patrón es separar ambas las capas.
Debe contener el juego completo de CRUD.
Create, Read, Update, Delete.
El objetivo es poder cambiar el origen de los datos, sin que el código deba ser modificado. Para que esto sea posible debemos usar otro patrón del cual hablare en otro post.
El repositorio puede ser instanciado a nivel de un controller para que se pueda acceder a los datos del modelo.
Donde crear el repositorio?
Dentro de la carpeta Model se debe crear una sub carpeta llamada Repositorios. Dentro de esta clase creamos clases cuyo nombre debe empezar con el nombre de la entidad que se accede en su código seguido de la palabra Repositorio.Una vez que la clase se ha creado, lo primero que debemos considerar el es uso de los NameSpaces. Si nos fijamos la clase creada dentro de la sub carpeta ahora contiene un NameSpaces que incluye el nombre de nuestra sub carpeta.
Esto ocasionará en donde debamos usar el repositorio que sea necesario una clausula USING, para evitarlo solo debemos eliminar esa parte del NameSpaces. De esta forma el repositorio se encontrara al mismo nivel que el Model.
Paso seguido debemos incluir nuestro NameSpaces de interfaces.
De esta forma podemos implementar la interface genérica que definimos previamente.
Dentro de los métodos se añade de forma automática un throw con una excepción de acuerdo a la situación.
Suerte.
No hay comentarios:
Publicar un comentario