Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Interface Repository

Por qual motivo criamos Interface ao invés de uma Classe para os Repositorys? Talvez o Instrutor já tenha explicado em algum vídeo, mas eu não me lembro.

2 respostas
solução!

Opa boa tarde Patricia, vc me lembra muito uma amiga minha kkkkk, vamos lá.

1 . Abstração e Encapsulamento:

As interfaces fornecem uma camada de abstração e encapsulamento em relação ao acesso aos dados no banco de dados. Isso significa que os detalhes da implementação podem ser ocultados do código de negócios, permitindo uma maior flexibilidade na escolha de uma implementação específica do repositório (como JPA, Hibernate, Spring Data JPA, etc.) sem afetar o código de negócios.

2 . Facilidade de Teste:

Ao criar interfaces para os repositórios, você pode facilmente criar implementações de repositórios falsos (mocks) para testes unitários. Isso é especialmente útil para isolar o código de negócios durante os testes e garantir que os testes não dependam diretamente de um banco de dados real.

3 . Padrão de Design:

Usar interfaces para definir os repositórios segue o princípio de inversão de controle e o padrão de design Dependency Injection (DI) / Injeção de Dependência, que é fundamental no ecossistema Spring. Ele permite que o contêiner Spring gerencie a criação e injeção das dependências, facilitando a configuração e a manutenção da aplicação.

4 . Polimorfismo:

O uso de interfaces permite a aplicação de polimorfismo, o que significa que diferentes implementações de repositórios podem ser trocadas facilmente, se necessário. Isso é útil em cenários onde você deseja alternar entre diferentes fontes de dados, como bancos de dados SQL, bancos de dados NoSQL ou serviços REST.

5 . Melhor Prática:

É considerada uma boa prática de desenvolvimento no contexto do Spring Data e Spring Boot. O framework Spring Data JPA, por exemplo, é projetado para criar automaticamente implementações de repositórios com base nas interfaces definidas, tornando o desenvolvimento mais eficiente.

Oi Alisson,

Ahahaha que legal

E obrigada pela explicação :)