Зачем нужен интерфейс Browser, если классы Chrome и Firefox реализуют этот интерфейс?

Интерфейс Browser задаёт общий контракт, чтобы клиентский код работал с Chrome и Firefox без зависимости от конкретной реализации и мог подменять браузер в тестах.

Короткий ответ

Что ответить на собеседовании

Интерфейс Browser задаёт общий контракт, чтобы клиентский код работал с Chrome и Firefox без зависимости от конкретной реализации и мог подменять браузер в тестах.

Подробный разбор

Ответ с пояснениями

Интерфейс Browser задаёт общий контракт, чтобы клиентский код работал с Chrome и Firefox без зависимости от конкретной реализации и мог подменять браузер в тестах.

Например, функция принимает Browser и вызывает open или close, не проверяя имя класса. Это полиморфизм и зависимость от абстракции. Разные реализации обязаны сохранять смысл контракта, иначе единый интерфейс будет формальным. Сам по себе интерфейс не нужен для каждого класса: если он полностью дублирует библиотеку и не создаёт полезной границы, это лишняя обвязка. Названия здесь условные и зависят от языка и framework проекта.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее