Care este motivul principal pentru aplicarea principiului inversării dependențelor în arhitectura software?
sobes.tech AI
Răspuns de la AI
Principiul inversiunii dependențelor (Dependency Inversion Principle, DIP) se aplică pentru reducerea cuplajului între componentele sistemului și creșterea flexibilității și testabilității acestuia.
Principalul motiv pentru aplicarea DIP este de a face modulele de nivel înalt independente de cele de nivel inferior, făcând ca ambele să depindă de abstracții (interfețe), mai degrabă decât de implementări concrete. Acest lucru permite înlocuirea ușoară a implementărilor, simplificând întreținerea și extinderea codului.
Exemplu în C#:
public interface ILogger
{
void Log(string message);
}
public class FileLogger : ILogger
{
public void Log(string message) { /* scriere în fișier */ }
}
public class UserService
{
private readonly ILogger _logger;
public UserService(ILogger logger)
{
_logger = logger; // dependență prin abstracție
}
public void CreateUser(string name)
{
// logica de creare a utilizatorului
_logger.Log($"Utilizator {name} creat.");
}
}
Aici, UserService depinde de interfața ILogger, și nu de implementarea concretă FileLogger. Acest lucru face posibilă înlocuirea logger-ului, de exemplu cu DatabaseLogger, fără modificări în UserService.