Sobes.tech
Junior — Middle

Quais abordagens e técnicas garantem a conformidade com o princípio da inversão de dependências no design do sistema?

sobes.tech IA

Resposta da IA

O princípio da inversão de dependências (Dependency Inversion Principle) no projeto de sistemas é alcançado através das seguintes abordagens e técnicas:

  • Utilização de abstrações em vez de implementações concretas. As classes devem depender de interfaces ou classes abstratas, não de classes concretas.
  • Injeção de dependências (Dependency Injection). As dependências são passadas para a classe de fora (através do construtor, propriedades ou métodos), e não criadas dentro dela.
  • Inversão de controlo (IoC). O controlo sobre a criação e ligação de objetos é transferido para um contêiner ou framework externo.

Exemplo em C# com injeção de dependências:

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 passada de fora
    }

    public void CreateUser(string name)
    {
        // lógica de criação de utilizador
        _logger.Log($"Utilizador {name} criado.");
    }
}

Este método facilita o teste, a extensibilidade e a manutenção do código.