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 способствует слабой связности компонентов и облегчает поддержку кода.