Junior — Middle
Explique o princípio da injeção de dependências no código de programação e suas vantagens.
sobes.tech IA
Resposta da IA
Injeção de dependências (Dependency Injection, DI) é um padrão de projeto em que um objeto recebe suas dependências de fora, em vez de as criar por si próprio. Isso melhora a modularidade e a testabilidade do código.
Vantagens do DI:
- Facilita os testes — as dependências podem ser facilmente substituídas por mocks ou stubs.
- Baixo acoplamento — as classes não dependem de implementações concretas, apenas de abstrações.
- Aumenta a flexibilidade — é fácil alterar as implementações das dependências sem modificar o código do consumidor.
Exemplo em C# usando um construtor para injetar a dependência:
public interface ILogger
{
void Log(string message);
}
public class ConsoleLogger : ILogger
{
public void Log(string message) => Console.WriteLine(message);
}
public class UserService
{
private readonly ILogger _logger;
public UserService(ILogger logger) // a dependência é injetada através do construtor
{
_logger = logger;
}
public void CreateUser(string name)
{
// lógica de criação de usuário
_logger.Log($"Usuário {name} criado.");
}
}
// Uso:
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");