Sobes.tech
Junior — Middle

El tudná magyarázni, mi az a Dependency Injection C#-ban, és miért van rá szükség?

sobes.tech MI

Válasz az MI-től

Függőség-injektálás (Dependency Injection, DI) egy tervezési minta, amely lehetővé teszi, hogy az osztálytól függő objektumokat kívülről adja át, ahelyett, hogy azokat az osztályon belül hozná létre. C#-ban ez segít a kód modulárisabbá, tesztelhetőbbé és karbantarthatóbbá tételében.

Miért van rá szükség?

  • Könnyíti a függőségek cseréjét (például, teszteléshez mock objektumokat lehet használni).
  • Csökkenti az összekapcsoltságot a komponensek között.
  • Javítja a kód olvashatóságát és karbantarthatóságát.

Egyszerű DI példa konstruktoron keresztül:

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;

    // A függőség a konstruktoron keresztül kerül átadásra
    public UserService(ILogger logger)
    {
        _logger = logger;
    }

    public void CreateUser(string name)
    {
        // Felhasználó létrehozási logika
        _logger.Log($"Felhasználó {name} létrehozva.");
    }
}

// Használat
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");