Junior — Middle
Môžete vysvetliť princíp vkladania závislostí do programového kódu a jeho hlavný účel?
sobes.tech AI
Odpoveď od AI
Vstrekovanie závislostí (Dependency Injection, DI) je vzor, pri ktorom objekt dostáva svoje závislosti zvonku, namiesto toho, aby ich sám vytváral. To zvyšuje modularitu, testovateľnosť a flexibilitu kódu.
Hlavný cieľ DI:
- Oddelenie zodpovedností: trieda nie je zodpovedná za vytváranie závislostí.
- Zjednodušenie testovania: závislosti je možné nahradiť mockmi alebo stubmi.
- Zvýšenie flexibility: ľahko meniť implementácie závislostí bez zmeny triedy.
Príklad v C# s použitím konštruktora:
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; // závislosť je injektovaná zvonku
}
public void CreateUser(string name) {
// logika pre vytvorenie používateľa
_logger.Log($"Používateľ {name} vytvorený.");
}
}
// Pri vytváraní UserService, odovzdávame potrebnú implementáciu ILogger
var service = new UserService(new ConsoleLogger());