Junior — Middle
Explicați principiul injecției de dependențe în codul programatic și avantajele sale.
sobes.tech AI
Răspuns de la AI
Injecția de dependințe (Dependency Injection, DI) este un pattern de proiectare în care un obiect primește dependențele sale din exterior, în loc să le creeze singur. Acest lucru crește modularitatea și testabilitatea codului.
Avantajele DI:
- Ușurează testarea — dependențele pot fi ușor înlocuite cu mock-uri sau stubs.
- Slab cuplaj — clasele nu depind de implementări concrete, ci doar de abstracții.
- Crește flexibilitatea — este ușor să schimbi implementările dependențelor fără a modifica codul consumatorului.
Exemplu în C# folosind un constructor pentru injectarea dependenței:
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) // dependența este injectată prin constructor
{
_logger = logger;
}
public void CreateUser(string name)
{
// logica de creare a utilizatorului
_logger.Log($"Utilizator {name} creat.");
}
}
// Utilizare:
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");