Sobes.tech
Junior

A cosa serve l'iniezione delle dipendenze nello sviluppo in C#?

sobes.tech AI

Risposta dell'AI

L'iniezione delle dipendenze (DI) in C# viene utilizzata per gestire le dipendenze tra le classi, aumentando la flessibilità e la testabilità del codice.

Obiettivi principali di DI:

  • Ridurre l'accoppiamento: le classi non creano direttamente le proprie dipendenze, ma le ricevono dall'esterno.
  • Semplificare i test: è facile sostituire le dipendenze con mock o stub.
  • Migliorare la manutenibilità: cambiare l'implementazione di una dipendenza non richiede modifiche al codice che la utilizza.

Esempio:

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;
    }
    public void CreateUser(string name) {
        // logica di creazione utente
        _logger.Log($"Utente {name} creato.");
    }
}

// Iniezione di dipendenza
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

In questo modo, DI favorisce l'inversione del controllo (IoC) e migliora l'architettura dell'applicazione.