Olá!
Por quê foi usado a interface ClientInterface ao invés da classe Client? Qual a diferença de usar uma ou outra?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá!
Por quê foi usado a interface ClientInterface ao invés da classe Client? Qual a diferença de usar uma ou outra?
Olá, Anderson.
Ao utilizar ClientInterface, caso a gente queira utilizar uma classe que implemente a mesma interface mas de modo diferente, a gente pode.
Assim ganhamos mais flexibilidade.
É uma regra muito conhecida no desenvolvimento de software: Sempre dependa de abstrações e nunca de implementações específicas. :-)
O conceito de interface não estava muito claro pra mim. Mas agora entendi.
A classe Client implementa a ClientInterface. E ao colocar o tipo ClientInterface para o parâmetro $httpClient, no construtor da classe Buscador, a gente permite que seja passada qualquer classe que atenda os requisitos da interface.
Um pouco confuso, mas entendi depois de rever a aula de interfaces no curso de OO 2, e reler sua resposta. kkk
Obrigado Vinicius!