2
respostas

Vantagem da utilização do Service Provider.

Olá, boa noite!

Se no Configure eu tenho que atrelar a interface/ classe pra que ele saiba o que instanciar, qual a vantagem da utilzação do serviço nesse caso pontual? Pois no fim, caso existisse outra classe que implementasse ICatalogo, como distinguiria ao requisitar o serviço?

Obrigado.

2 respostas

Olá Luiz, tudo certo?

A injeção de dependência ajuda bastante para se usar um objeto em qualquer ponto da aplicação. Para uma melhor contextualização, o princípio SOLID prega uma boa prática que é a única responsabilidade, por exemplo um repositório de pedidos, onde grava pedidos novos, faz consultas ou alterações de pedidos. Também tem a inversão de controle, que diz sobre depender de uma abstração ao invés de uma implementação.

Se você tem uma classe, que seria interessante que ela fosse usada em alguns pontos, por exemplo o repositório de pedidos. Você extrai a interface desse repositório e simplesmente usa nos pontos que forem necessários.

Então, essa interface já é extraída para atender uma única classe (que tem uma única responsabilidade), para que essa classe seja usada como um serviço da aplicação.

Essa dúvida do Stack Overflow tem mais explicações sobre injeção de dependência e seus usos.

Espero ter ajudado!

Olá Fabiano, boa tarde. Obrigado pelo conteúdo. Minha dúvida principal é (Aula 1 - Part7 ASP.NET Core Parte 1): Naquela situação, caso eu necessitasse que o serviço devolvesse outra classe que implemente ICatalogo, como eu procederia se eu engesso o retorno na classe Catalogo?

Se eu tiver que trocar o tipo de classe que deve ser instanciada quando peço por aquela interface, uma interface sempre vai corresponder a uma classe certo?

Obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software