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());