Sobes.tech
Junior

Na čo je v vývoji v C# potrebná Dependency Injection?

sobes.tech AI

Odpoveď od AI

Vkladanie závislostí (DI) v C# sa používa na riadenie závislostí medzi triedami, čím sa zvyšuje flexibilita a testovateľnosť kódu.

Hlavné ciele DI:

  • Zníženie prepojenia: triedy ne vytvárajú svoje závislosti priamo, ale ich dostávajú zvonku.
  • Zjednodušenie testovania: závislosti je ľahké nahradiť mockmi alebo stubmi.
  • Zlepšenie údržby: zmena implementácie závislosti nevyžaduje zmenu kódu, ktorý ju používa.

Príklad:

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;
    }
    public void CreateUser(string name) {
        // logika vytvárania používateľa
        _logger.Log($"Používateľ {name} vytvorený.");
    }
}

// Vkladanie závislosti
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

Týmto spôsobom DI podporuje invertovanie riadenia (IoC) a zlepšuje architektúru aplikácie.