Junior — Middle
Pode explicar o princípio de injeção de dependências no código de programação e seu propósito principal?
sobes.tech IA
Resposta da IA
A injeção de dependências (Dependency Injection, DI) é um padrão em que um objeto recebe as suas dependências de fora, em vez de as criar por si próprio. Isto aumenta a modularidade, a testabilidade e a flexibilidade do código.
O objetivo principal do DI:
- Separação de responsabilidades: a classe não é responsável por criar dependências.
- Simplificação dos testes: as dependências podem ser substituídas por mocks ou stubs.
- Aumento da flexibilidade: alterar facilmente as implementações das dependências sem modificar a classe.
Exemplo em C# usando 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;
public UserService(ILogger logger) {
_logger = logger; // dependência injetada de fora
}
public void CreateUser(string name) {
// lógica de criação de utilizador
_logger.Log($"Utilizador {name} criado.");
}
}
// Ao criar UserService, passamos a implementação necessária de ILogger
var service = new UserService(new ConsoleLogger());