Шаблон проектирования Фасад (Facade) | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
C++ Developer. Professional JavaScript Developer. Professional Android Developer. Professional Microservice Architecture React.js Developer JavaScript Developer. Basic PostgreSQL Программист С C++ Developer. Basic Team Lead PHP Developer. Professional Подготовка к сертификации Oracle Java Programmer (OCAJP) Алгоритмы и структуры данных Разработчик IoT C# Developer. Basic Unreal Engine Technical Game Design C# ASP.NET Core разработчик Python Developer. Professional Python Developer. Basic Node.js Developer iOS Developer. Professional Cloud Solution Architecture Kotlin Backend Developer Agile Project Manager Scala-разработчик Symfony Framework iOS Developer. Basic Супер-интенсив Azure Специализация Python Developer
Инфраструктура
Экспресс-курс по управлению миграциями (DBVC) Экспресс-курс «IaC Ansible» Microservice Architecture Разработчик программных роботов (RPA) на базе UiPath и PIX Внедрение и работа в DevSecOps NoSQL Специализация Administrator Linux
-24%
Разработчик IoT Мониторинг и логирование: Zabbix, Prometheus, ELK MongoDB
-30%
DevOps практики и инструменты MS SQL Server Developer SRE практики и инструменты Administrator Linux. Advanced Infrastructure as a code Супер-интенсив "Tarantool" Специализация Network engineer
Корпоративные курсы
Экспресс-курс по управлению миграциями (DBVC) Экспресс-курс «IaC Ansible» Разработчик программных роботов (RPA) на базе UiPath и PIX Внедрение и работа в DevSecOps NoSQL Spark Developer Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» Game QA Engineer DevOps практики и инструменты Enterprise Architect Node.js Developer Cloud Solution Architecture Agile Project Manager Супер-практикум по работе с протоколом BGP Infrastructure as a code Промышленный ML на больших данных Супер-интенсив Azure Руководитель поддержки пользователей в IT
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

Шаблон проектирования Фасад (Facade)

Фасад представляет собой структурный шаблон проектирования, который дает возможность скрыть сложность системы посредством сведения всевозможных внешних вызовов к одному объекту, делегирующему эти вызовы соответствующим объектам системы.

Для наилучшего понимания давайте приведем простой жизненный пример. Представьте, что вы включаете ваш персональный компьютер. Как вы это делаете? Нажимая на кнопку включения. Это самый простой ответ и то, во что вы верите, так как вы задействуете простейший интерфейс, который ПК вам предоставляет для доступа к нему снаружи. Однако ведь на практике внутри происходит намного больше интересных событий. Но в нашем случае кнопка включения является простым интерфейсом для сложной подсистемы. Это и есть фасад.

Таким образом, шаблон под названием Фасад предоставляет для сложной системы некий упрощенный интерфейс.

Осталось посмотреть, как это выглядит в коде. Итак, класс Computer у нас есть:

1-1801-83b417.png

А вот наш фасад:

2-1801-512231.png

Ну и, напоследок, пример использования:

3-1801-0f5f01.png

Как то так)

По материалам статьи «Design Patterns for Humans» — https://github.com/kamranahmedse/design-patterns-for-humans.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
1 комментарий
0

Удалите мой аккаунт из системы!!!

Для комментирования необходимо авторизоваться