Junior — Middle
Vysvetlite princíp vkladania závislostí do programového kódu a jeho výhody.
sobes.tech AI
Odpoveď od AI
Vstrekovanie závislostí (Dependency Injection, DI) je návrhový vzor, pri ktorom objekt dostáva svoje závislosti zvonku, namiesto toho, aby ich sám vytváral. To zvyšuje modularitu a testovateľnosť kódu.
Výhody DI:
- Uľahčuje testovanie — závislosti je možné ľahko nahradiť mockmi alebo stubmi.
- Slabé prepojenie — triedy nezávisia od konkrétnych implementácií, iba od abstrakcií.
- Zvyšuje flexibilitu — je jednoduché meniť implementácie závislostí bez zmeny kódu spotrebiteľa.
Príklad v C# s použitím konštruktora na injektovanie 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ávislosť je injektovaná cez konštruktor
{
_logger = logger;
}
public void CreateUser(string name)
{
// logika vytvárania používateľa
_logger.Log($"Používateľ {name} vytvorený.");
}
}
// Použitie:
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");