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

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

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

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

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

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

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

Как то так)

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