Sobes.tech
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");