Junior — Middle
Poți explica ce este injecția de dependențe în C# și de ce este necesară?
sobes.tech AI
Răspuns de la AI
Injecția de dependințe (Dependency Injection, DI) este un pattern de proiectare care permite transmiterea obiectelor de care depinde o clasă din exterior, în loc să le creeze în interiorul clasei. În C#, acest lucru ajută la realizarea unui cod mai modular, testabil și ușor de întreținut.
La ce folosește?
- Facilitează înlocuirea dependențelor (de exemplu, pentru testare, se pot folosi obiecte mock).
- Reduce cuplarea între componente.
- Îmbunătățește lizibilitatea și întreținerea codului.
Exemplu simplu de DI prin constructor:
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;
// Dependența este transmisă prin constructor
public UserService(ILogger logger)
{
_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");