Junior — Middle
Vysvětlete princip zavádění závislostí v programovém kódu a jeho výhody.
sobes.tech AI
Odpověď od AI
Závislostní injekce (Dependency Injection, DI) je návrhový vzor, při kterém objekt získává své závislosti zvenčí, místo toho, aby je sám vytvářel. To zvyšuje modularitu a testovatelnost kódu.
Výhody DI:
- Usnadňuje testování — závislosti lze snadno nahradit mocky nebo stuby.
- Slabé propojení — třídy nezávisí na konkrétních implementacích, pouze na abstrakcích.
- Zvyšuje flexibilitu — je snadné měnit implementace závislostí bez změny kódu spotřebitele.
Příklad v C# s použitím konstruktoru pro injekci závislosti:
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) // závislost je injektována přes konstruktor
{
_logger = logger;
}
public void CreateUser(string name)
{
// logika vytváření uživatele
_logger.Log($"Uživatel {name} vytvořen.");
}
}
// Použití:
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");