Back to questions
Junior — Middle
63
Можете объяснить принцип внедрения зависимостей в программный код и его основное предназначение?
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
var service = new UserService(new ConsoleLogger());