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");