Преимущества паттерна «Фасад» (Facade) в разработке ПО:
- Упрощение работы со сложной системой. 25 Фасад позволяет определить одну точку взаимодействия между клиентом и системой. 25
- Уменьшение количества зависимостей между клиентом и сложной системой. 25 Фасадные объекты позволяют отделить, изолировать компоненты системы от клиента и развивать и работать с ними независимо. 25
- Повторное использование кода и лучших практик. 2 Инкапсуляция работы с библиотеками в одном месте позволяет корректно использовать их всеми разработчиками независимо от их опыта. 2
- Переход на новую версию библиотеки. 2 При выходе новой версии библиотеки достаточно будет протестировать лишь фасад, чтобы принять решение, стоит на неё переходить или нет. 2
- Переход с одной библиотеки на другую. 2 Благодаря фасаду приложение не так сильно завязано на библиотеку, так что переход на другую библиотеку потребует лишь создание ещё одного фасада. 2
Недостатки паттерна «Фасад» в разработке ПО:
- Риск появления «божественного интерфейса». 3 Это интерфейс с огромным числом методов, без чётко выраженной цели и порождающего большое количество зависимостей. 3
- Фасады бесполезны, когда имеют громоздкий интерфейс, и пользоваться ими сложнее, чем исходной библиотекой. 2