Sobes.tech
Junior

Na co je v vývoji v C# potřeba Dependency Injection?

sobes.tech AI

Odpověď od AI

Injekce závislostí (DI) v C# se používá k řízení závislostí mezi třídami, což zvyšuje flexibilitu a testovatelnost kódu.

Hlavní cíle DI:

  • Slabší propojení: třídy nevytvářejí své závislosti přímo, ale je přijímají zvenčí.
  • Zjednodušení testování: závislosti lze snadno nahradit mocky nebo stuby.
  • Zlepšení údržby: změna implementace závislosti nevyžaduje změnu kódu, který ji používá.

Pří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áření uživatele
        _logger.Log($"Uživatel {name} vytvořen.");
    }
}

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

Tímto způsobem DI podporuje inverzi řízení (IoC) a zlepšuje architekturu aplikace.