Adapter и Facade: как изолировать сторонний SDK?
Суть
Adapter преобразует интерфейс чужого класса в тот, который ожидает ваш код. Вы объявляете протокол в терминах своего домена, а адаптер переводит вызовы в API SDK: имена событий, типы параметров, колбэки в async. Facade решает другую задачу — упрощает подсистему: один объект с парой методов прячет оркестрацию нескольких классов, порядок вызовов и конфигурацию. Обёртка над сторонним SDK обычно совмещает обе роли.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep