Sobes.tech
Intern — Junior

A cosa serve l'iniezione delle dipendenze nei moduli software?

sobes.tech AI

Risposta dell'AI

L'iniezione delle dipendenze (Dependency Injection, DI) viene utilizzata per migliorare la modularità e la testabilità dei moduli software. Invece di creare le dipendenze all'interno della classe, vengono passate dall'esterno, consentendo di sostituire facilmente le implementazioni, semplificando la manutenzione e l'espansione del codice.

Ad esempio, in C# con DI, si può passare l'implementazione di un'interfaccia al costruttore della classe:

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.");
    }
}

Questo approccio facilita la sostituzione del logger con un altro (ad esempio, un file) senza modificare la classe UserService.