Sobes.tech
Junior

Do czego służy wstrzykiwanie zależności w rozwoju w C#?

sobes.tech AI

Odpowiedź od AI

Wstrzykiwanie zależności (DI) w C# służy do zarządzania zależnościami między klasami, co zwiększa elastyczność i testowalność kodu.

Główne cele DI:

  • Osłabienie powiązań: klasy nie tworzą bezpośrednio swoich zależności, lecz otrzymują je z zewnątrz.
  • Uproszczenie testowania: łatwo można zastąpić zależności mockami lub stubami.
  • Zwiększenie łatwości utrzymania: zmiana implementacji zależności nie wymaga modyfikacji kodu, który jej używa.

Przykład:

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 tworzenia użytkownika
        _logger.Log($"Użytkownik {name} utworzony.");
    }
}

// Wstrzykiwanie zależności
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

W ten sposób DI sprzyja odwróceniu sterowania (IoC) i poprawia architekturę aplikacji.