Ответ вслух Junior SOLID и принципы обновлено

Фасад и адаптер

Вопрос

Чем фасад отличается от адаптера? Приведи фронтовые примеры.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Фасад прячет сложность за простым интерфейсом: свой api.getOrders(), внутри которого fetch, заголовки авторизации, разбор ошибок, отмена и повторы. Вызывающий код не знает ни про заголовки, ни про формат ошибок.

Что должно прозвучать в ответе

  • фасад упрощает сложную подсистему одним удобным интерфейсом

  • адаптер приводит чужой интерфейс к ожидаемому

  • фасад: свой api-клиент поверх fetch с авторизацией и ошибками

  • адаптер: обёртка над чужой библиотекой графиков под наш контракт

  • оба дают одну точку для замены зависимости

  • признак пользы: смена библиотеки правит один файл

Что могут спросить следом

  • Как понять, что фасад протёк наружу
  • Где адаптер помогает при миграции библиотеки
  • Чем это отличается от простого хелпера

Разбор

Фасад прячет сложность за простым интерфейсом: свой api.getOrders(), внутри которого fetch, заголовки авторизации, разбор ошибок, отмена и повторы. Вызывающий код не знает ни про заголовки, ни про формат ошибок.

Адаптер приводит чужой интерфейс к нашему: обёртка над библиотекой графиков или платёжным виджетом, которая принимает наши данные и наши имена коллбэков.

Общая ценность обоих одинакова и легко называется на собеседовании: смена нижележащей зависимости правит один файл. Типичный пример: переезд с одной платёжной системы на другую, когда вся интеграция спрятана за фасадом и бизнес-код не меняется.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.