Фасад и адаптер
Вопрос
Чем фасад отличается от адаптера? Приведи фронтовые примеры.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
фасад упрощает сложную подсистему одним удобным интерфейсом
адаптер приводит чужой интерфейс к ожидаемому
фасад: свой api-клиент поверх fetch с авторизацией и ошибками
адаптер: обёртка над чужой библиотекой графиков под наш контракт
оба дают одну точку для замены зависимости
признак пользы: смена библиотеки правит один файл
Что могут спросить следом
- Как понять, что фасад протёк наружу
- Где адаптер помогает при миграции библиотеки
- Чем это отличается от простого хелпера
Разбор
Фасад прячет сложность за простым интерфейсом: свой api.getOrders(),
внутри которого fetch, заголовки авторизации, разбор ошибок, отмена и повторы. Вызывающий
код не знает ни про заголовки, ни про формат ошибок.
Адаптер приводит чужой интерфейс к нашему: обёртка над библиотекой графиков или платёжным виджетом, которая принимает наши данные и наши имена коллбэков.
Общая ценность обоих одинакова и легко называется на собеседовании: смена нижележащей зависимости правит один файл. Типичный пример: переезд с одной платёжной системы на другую, когда вся интеграция спрятана за фасадом и бизнес-код не меняется.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.