Sobes.tech
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");