Sobes.tech
Junior — Middle

Puoi spiegare cos'è l'iniezione delle dipendenze in C# e perché è necessaria?

sobes.tech AI

Risposta dell'AI

L'iniezione delle dipendenze (Dependency Injection, DI) è un pattern di progettazione che consente di passare gli oggetti di cui una classe dipende dall'esterno, invece di crearli all'interno della classe stessa. In C#, questo aiuta a rendere il codice più modulare, testabile e manutenibile.

A cosa serve?

  • Facilita la sostituzione delle dipendenze (ad esempio, per i test, si possono usare oggetti mock).
  • Riduce l'accoppiamento tra i componenti.
  • Migliora la leggibilità e la manutenzione del codice.

Esempio semplice di DI tramite il costruttore:

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;

    // La dipendenza viene passata tramite il costruttore
    public UserService(ILogger logger)
    {
        _logger = logger;
    }

    public void CreateUser(string name)
    {
        // Logica di creazione utente
        _logger.Log($"Utente {name} creato.");
    }
}

// Uso
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");