Sobes.tech
Junior — Middle

Tudja magyarázni a függőséginjektálás elvét a programkódban és fő célját?

sobes.tech MI

Válasz az MI-től

Függőség-injektálás (Dependency Injection, DI) egy mintázat, amelyben egy objektum a függőségeit kívülről kapja, nem pedig maga hozza létre azokat. Ez növeli a kód modularitását, tesztelhetőségét és rugalmasságát.

A DI fő céljai:

  • Felelősségek szétválasztása: az osztály nem felelős a függőségek létrehozásáért.
  • Tesztelés egyszerűsítése: a függőségek helyettesíthetők mock vagy stub objektumokkal.
  • Rugalmasság növelése: könnyen változtathatók a függőségek megvalósításai anélkül, hogy módosítani kellene az osztályt.

Példa C#-ban konstruktor használatával:

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) {
        _logger = logger; // függőség kívülről injektálva
    }

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

// UserService példányosításakor átadjuk a szükséges ILogger megvalósítást
var service = new UserService(new ConsoleLogger());