Sobes.tech
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.