Sobes.tech
Back to questions
Junior — Middle
72

Какова основная задача Dependency Injection в приложениях?

Answer from AI

sobes.tech AI

Dependency Injection (DI) — это паттерн проектирования, который позволяет внедрять зависимости (например, сервисы, репозитории) в класс извне, а не создавать их внутри.

Основная задача DI — повысить модульность, тестируемость и гибкость приложения, позволяя легко заменять реализации зависимостей без изменения кода класса.

В C# это часто реализуется через конструкторы или свойства:

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");
    }
}

Здесь UserService не создаёт ILogger самостоятельно, а получает его извне, что упрощает замену логгера, например, на тестовый.

DI способствует слабой связности компонентов и облегчает поддержку кода.