Инверсия зависимостей означает, что бизнес-логика зависит от нужного ей контракта, а не от конкретной БД или HTTP-клиента. В Go это удобно выражать небольшими интерфейсами.
Каково значение Принципа Инверсии Зависимостей в Go и как его можно эффективно реализовать?
Инверсия зависимостей означает, что бизнес-логика зависит от нужного ей контракта, а не от конкретной БД или HTTP-клиента. В Go это удобно выражать небольшими интерфейсами.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Инверсия зависимостей означает, что бизнес-логика зависит от нужного ей контракта, а не от конкретной БД или HTTP-клиента. В Go это удобно выражать небольшими интерфейсами.
Интерфейс обычно определяют рядом с потребителем, а реализацию передают через конструктор. Например, сценарий заказа принимает хранилище с нужными методами, а PostgreSQL-адаптер реализует их без явного implements. Это облегчает замену инфраструктуры и тестирование. Не создавайте интерфейс для каждого типа автоматически: абстракция должна защищать реальную границу зависимости.