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