Junior — Middle
Qual é a principal razão para aplicar o princípio da inversão de dependências na arquitetura de software?
sobes.tech IA
Resposta da IA
O Princípio da Inversão de Dependências (Dependency Inversion Principle, DIP) é aplicado para reduzir o acoplamento entre os componentes do sistema e aumentar a sua flexibilidade e testabilidade.
A principal razão para aplicar o DIP é tornar os módulos de alto nível independentes dos de baixo nível, fazendo ambos dependerem de abstrações (interfaces) em vez de implementações concretas. Isto permite substituir facilmente as implementações, simplifica a manutenção e a expansão do código.
Exemplo em C#:
public interface ILogger
{
void Log(string message);
}
public class FileLogger : ILogger
{
public void Log(string message) { /* escrita em ficheiro */ }
}
public class UserService
{
private readonly ILogger _logger;
public UserService(ILogger logger)
{
_logger = logger; // dependência através de abstração
}
public void CreateUser(string name)
{
// lógica de criação de utilizador
_logger.Log($"Utilizador {name} criado.");
}
}
Aqui, UserService depende da interface ILogger, e não da implementação concreta FileLogger. Isto facilita a substituição do logger, por exemplo, por DatabaseLogger, sem alterações em UserService.