Назад к вопросам
Junior — Middle
66
Какие подходы и техники обеспечивают соблюдение принципа инверсии зависимостей в проектировании системы?
Ответ от нейросети
sobes.tech AI
Принцип инверсии зависимостей (Dependency Inversion Principle) в проектировании системы достигается следующими подходами и техниками:
- Использование абстракций вместо конкретных реализаций. Классы должны зависеть от интерфейсов или абстрактных классов, а не от конкретных классов.
- Внедрение зависимостей (Dependency Injection). Зависимости передаются в класс извне (через конструктор, свойства или методы), а не создаются внутри него.
- Инверсия управления (IoC). Контроль над созданием и связыванием объектов передается внешнему контейнеру или фреймворку.
Пример на 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.");
}
}
Такой подход облегчает тестирование, расширяемость и поддержку кода.