DEV Community

Cover image for Padrão de Design: Repositório | Explicação completa e simples
Daniela "Ingeniela" Barazarte
Daniela "Ingeniela" Barazarte

Posted on

1

Padrão de Design: Repositório | Explicação completa e simples

Introdução

Olá, meu nome é Daniela Barazarte e quero dar as boas-vindas a esta explicação completa sobre o padrão de projeto do repositório.Esta explicação será tão simples e direta que até uma criança de 5 anos conseguiria entender.

Se você preferir vídeos, aqui está um tutorial completo feito por mim no YouTube: https://www.youtube.com/watch?v=b2tPRbQJing (está em espanhol)

Teoria

Lógica

"Padrão de design"

  • Padrão: é um tipo de eventos ou objetos repetitivos Repositório de padrões de design
  • Design: atividade criativa cujo objetivo é projetar objetos úteis e estéticos

"Repositório"

  • Repositório: armazém ou local onde se guardam certas coisas

Definição simples

Padrões de design referem-se à ideia de que existem padrões ou soluções comuns e reutilizáveis ​​que podem ser aplicados a problemas repetitivos no design de software. Chama-se “padrão” porque se repete em vários projetos, e design porque projeta objetos de forma simples.

O repositório é um padrão de design de software usado para separar o aplicativo (elementos de programação, como classes, interfaces, métodos) do armazenamento de dados (banco de dados) e funciona como um mediador entre os dois.

O repositório fornece um conjunto de métodos para executar operações CRUD (Criar, Ler, Atualizar, Excluir) nos dados.

Estrutura

Repositório com vs sem

  • A parte superior desta imagem representa um sistema sem o padrão de design do repositório
  • A parte inferior desta imagem representa um sistema com o padrão de design do repositório

Como você pode ver, o padrão de design do repositório ajuda a conectar a lógica do aplicativo (de ter os métodos e funções CRUD) com o banco de dados... e quando o repositório não está lá, a conexão é direta. O fato de o repositório estar presente como um intermediário é importante e você verá o porquê neste blog.

Prática

Exercício

Você tem um aplicativo WebAPI que possui métodos para criar, ler, editar e excluir bilhetes para uma estação de trem... tenha esses bilhetes armazenados em um banco de dados SQL.

Existem dois métodos para resolver a tarefa:

  1. Faça isso sem o padrão de design do repositório
  2. Faça isso com o padrão de design do repositório

Método: sem o padrão de design do repositório

Sem padrão de design de repositório

Os métodos de armazenamento do banco de dados estariam junto com os métodos de ticket (criar, ler, editar e deletar tickets).

Método: com o padrão de design do repositório
Com padrão de design de repositório

Os métodos de armazenamento de banco de dados agora estão separados e não próximos aos métodos de ticket

Importância

O padrão de design do repositório tem vários benefícios:

  • Separação de responsabilidades: O padrão de projeto Repository ajuda a separar a lógica de acesso a dados da lógica de negócios do aplicativo.
  • Abstração: O padrão de projeto Repositório fornece uma camada de abstração entre o aplicativo e o mecanismo de armazenamento de dados. Essa camada de abstração facilita a troca para um mecanismo de armazenamento de dados diferente sem afetar o código do aplicativo que usa a interface do repositório.
  • Encapsulação: O padrão de projeto do Repositório encapsula a lógica de acesso aos dados em um só lugar, facilitando o gerenciamento e a modificação.
  • Testability: o padrão de design Repository facilita o teste da lógica de negócios do seu aplicativo, fornecendo uma implementação de repositório simulada que pode ser usada para testes de unidade.
  • Escalabilidade: o padrão de projeto Repository pode ajudar a melhorar a escalabilidade de um aplicativo, fornecendo um local centralizado para gerenciar o acesso aos dados, o que pode ajudar a reduzir a contenção e melhorar o desempenho.

Gratidão

Muita obrigada por ler, se tiver alguma dúvida pode comentar, também pode me encontrar em minhas outras redes como Twitter, GitHub e LinkedIn

Estarei preparando um post no blog sobre como implementar Repository em C# e .NET então fique ligado <3

Top comments (2)

Collapse
 
otavio99 profile image
otavio99

Opa, gostei do artigo e tenho uma dúvida: Do seu ponto de vista, seria recomendável adicionar algum tipo de validação nessa camada de repositório? Ou ela seria indicada somente para lidar com a lógica de acesso ao mecanismo de armazenamento?

Collapse
 
ingeniela profile image
Daniela "Ingeniela" Barazarte

Fico muito feliz que tenha gostado! Se você está se referindo à validação de dados, pessoalmente, recomendo que a validação seja feita na lógica de negócios para que eles não entrem no repositório caso não estejam corretos.

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay