Junior — Middle
Quali approcci e tecniche garantiscono il rispetto del principio di inversione delle dipendenze nella progettazione del sistema?
sobes.tech AI
Risposta dell'AI
Il principio di inversione delle dipendenze (Dependency Inversion Principle) nella progettazione di sistemi si ottiene attraverso i seguenti approcci e tecniche:
- Utilizzo di astrazioni invece di implementazioni concrete. Le classi devono dipendere da interfacce o classi astratte, non da classi concrete.
- Iniezione delle dipendenze (Dependency Injection). Le dipendenze vengono passate alla classe dall'esterno (tramite costruttore, proprietà o metodi), e non create al suo interno.
- Inversione del controllo (IoC). Il controllo sulla creazione e il collegamento degli oggetti viene trasferito a un contenitore o framework esterno.
Esempio in C# con iniezione delle dipendenze:
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; // dipendenza passata dall'esterno
}
public void CreateUser(string name)
{
// logica di creazione utente
_logger.Log($"Utente {name} creato.");
}
}
Questo approccio facilita i test, l'estensibilità e la manutenzione del codice.