Sobes.tech
Junior — Middle

Pode explicar o que é a injeção de dependências em C# e por que ela é necessária?

sobes.tech IA

Resposta da IA

Injeção de dependências (Dependency Injection, DI) é um padrão de projeto que permite passar objetos dos quais uma classe depende de fora, em vez de criá-los dentro da própria classe. Em C#, isso ajuda a tornar o código mais modular, testável e fácil de manter.

Para que serve:

  • Facilita a substituição de dependências (por exemplo, para testes, pode-se usar objetos simulados).
  • Reduz o acoplamento entre componentes.
  • Melhora a legibilidade e a manutenção do código.

Exemplo simples de DI através do construtor:

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;

    // A dependência é passada através do construtor
    public UserService(ILogger logger)
    {
        _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");