Sobes.tech
Back to questions
Junior — Middle
66

Можете объяснить концепцию Dependency Injection и объяснить её применение в разработке?

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("Ivan");

В реальных приложениях часто применяют контейнеры внедрения зависимостей (например, Microsoft.Extensions.DependencyInjection), которые автоматически создают и управляют жизненным циклом объектов.