- CONTROLLER: Controlam as requisições HTTP de uma entidade
- REPOSITORY: Realiza as consultas no banco de dados
- INTERFACE: permite abstrações do código e reutilização deles
Introdução
Para manter as coisas em seu devido lugar precisamos manter cada funcionalidade separada, isso facilita a manutenção e organização.
O Repository
vai manter todas as consultas de uma entidade para o banco de dados organizadas em uma classe que servirá como um repositório. Esse repositório herdará uma…
Interface,
que serve como uma espécie de contrato que o repositório deve seguir. Usar uma interface é considerado uma boa prática pois:
- Faz injeção de dependencia automatica,
- Torna o código mais testável e desaclopado,
- Facilita a manutenção do código,
- O código principal (controladores) dependem de um contrato (interface), e não da classe específica que faz o trabalho (repositório).
Em resumo:
- A Interface diz o que deve ser feito → ObterTodosAsync();
- Repositório implementa a interface → diz qual consulta será feita.