Junior — Middle
Magyarázza el a függőséginjektálás elvét a programkódban és annak előnyeit.
sobes.tech MI
Válasz az MI-től
Függőség-injektálás (Dependency Injection, DI) egy tervezési minta, amelyben egy objektum külső forrásból kapja meg a függőségeit, nem pedig saját maga hozza létre azokat. Ez növeli a kód modularitását és tesztelhetőségét.
A DI előnyei:
- Egyszerűbb tesztelés — a függőségek könnyen helyettesíthetők mock vagy stub segítségével.
- Gyenge kapcsolódás — az osztályok nem függenek konkrét implementációktól, csak absztrakcióktól.
- Növeli a rugalmasságot — könnyen változtathatók a függőségek implementációi anélkül, hogy a fogyasztó kódját módosítanánk.
Példa C#-ban, ahol a konstruktoron keresztül injektáljuk a függőséget:
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) // a függőség a konstruktoron keresztül injektálódik
{
_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");