DEV Community

Cover image for Patrón de diseño: Repositorio | Explicación completa y simple
Daniela "Ingeniela" Barazarte
Daniela "Ingeniela" Barazarte

Posted on

Patrón de diseño: Repositorio | Explicación completa y simple

Introducción

Hola buenas, mi nombre es Daniela Barazarte y te quiero dar la bienvenida a esta explicación completa del patrón de diseño de repositorio, esta explicación será tan simple y directa que hasta un niño de 5 años podría entenderla.

Si prefieres los videos, aquí tienes un tutorial completo hecho por mí en YouTube: https://www.youtube.com/watch?v=b2tPRbQJing

Teoría

Lógica

"Patrón de diseño"

  • Patrón: es un tipo de sucesos u objetos repetitivos Patrón de diseño repositorio
  • Diseño: actividad creativa que tiene por fin proyectar objetos que sean útiles y estéticos

"Repositorio"

  • Repositorio: almacén o lugar donde se guardan ciertas cosas

Definición simple

Los patrones de diseño se refieren a la idea de que hay patrones o soluciones comunes y reutilizables que pueden aplicarse a problemas repetitivos en el diseño de software. Se le dice "patrón" porque se repite en varios proyectos, y diseño porque proyecta objetos de una manera simple

El repositorio es un patrón de diseño de software que se utiliza para separar la aplicación (elementos de programación, como clases, interfaces, métodos) del almacenamiento de datos (base de datos) y funciona como mediador entre ambos.

El repositorio proporciona un conjunto de métodos para realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en los datos.

Estructura

Repositorio con vs sin

  • La parte de arriba de esta imagen representa un sistema sin el patrón de diseño de repositorio
  • La parte de abajo de esta imagen representa un sistema con el patrón de diseño de repositorio

Como puedes ver, el patrón de diseño de repositorio ayuda a conectar la lógica de la aplicación (de tener los métodos y funciones CRUD) con la base de datos... y cuando el repositorio no está, la conexión es directa. El hecho de que el repositorio esté presente como intermediario es importante y estarás viendo por qué en este blog

Práctica

Ejercicio

Tienes una aplicación WebAPI que tiene métodos para crear, leer, editar y eliminar los tickets de una estación de trenes… haz que esos tickets se almacenen en una base de datos en SQL.

Hay dos métodos para resolver la tarea:

  1. Hacerlo sin el patrón de diseño de repositorio
  2. Hacerlo con el patrón de diseño de repositorio

Método: sin patrón de diseño repository

Sin patrón de diseño repository

Los métodos de almacenamiento de base de datos estarían juntos con los métodos de los tickets (creación, lectura, edición y eliminación de tickets)

Método: sin patrón de diseño repository
Con patrón de diseño repository

Ahora, los métodos de almacenamiento de base de datos están por separado y no se encuentra junto a los métodos de tickets

Importancia

El patrón de diseño repositorio tiene varios beneficios:

  • Separación de responsabilidades: El patrón de diseño Repositorio ayuda a separar la lógica de acceso a datos de la lógica de negocio de la aplicación.
  • Abstracción: El patrón de diseño Repositorio proporciona una capa de abstracción entre la aplicación y el mecanismo de almacenamiento de datos. Esta capa de abstracción hace que sea más fácil cambiar a un mecanismo de almacenamiento de datos diferente sin afectar el código de la aplicación que utiliza la interfaz del repositorio.
  • Encapsulamiento: El patrón de diseño Repositorio encapsula la lógica de acceso a datos en un solo lugar, lo que hace que sea más fácil de gestionar y modificar.
  • Testabilidad: El patrón de diseño Repositorio facilita la prueba de la lógica de negocio de la aplicación al proporcionar una implementación de repositorio simulada que se puede utilizar para las pruebas unitarias.
  • Escalabilidad: El patrón de diseño Repositorio puede ayudar a mejorar la escalabilidad de una aplicación al proporcionar un lugar centralizado para gestionar el acceso a datos, lo que puede ayudar a reducir la contención y mejorar el rendimiento.

Agradecimiento

Muchas gracias por leer, si tienes alguna duda puedes comentar, también me puedes encontrar en mis otras redes como Twitter, GitHub y LinkedIn

Estaré preparando un blog post de como implementar Repositorio en C# y .NET entonces estate atento <3

Top comments (0)