Sobes.tech
Junior

За какво е необходима Dependency Injection в разработката на C#?

sobes.tech AI

Отговор от AI

Внедряването на зависимости (DI) в C# се използва за управление на зависимостите между класовете, което увеличава гъвкавостта и тестируемостта на кода.

Основните цели на DI:

  • Засилване на слабата свързаност: класовете не създават директно своите зависимости, а ги получават отвън.
  • Улесняване на тестването: лесно е да се заменят зависимостите с мока или стаби.
  • Подобряване на поддържането: промяната на реализацията на зависимост не изисква промяна в кода, който я използва.

Пример:

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) {
        // логика за създаване на потребител
        _logger.Log($"Потребител {name} създаден.");
    }
}

// Внедряване на зависимост
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

По този начин DI насърчава инверсията на управлението (IoC) и подобрява архитектурата на приложението.