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