Sobes.tech
Back to questions
Junior
231

Для чего нужен Dependency Injection в разработке на C#?

Answer from AI

sobes.tech AI

Dependency Injection (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($"User {name} created.");
    }
}

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

Таким образом, DI способствует инверсии управления (IoC) и улучшает архитектуру приложения.