Skip to content

Структура работы Facade

  1. Фасад предоставляет быстрый доступ к определённой функциональности подсистемы. Он «знает», каким классам нужно переадресовать запрос и какие данные для этого нужны.
  2. Дополнительный фасад можно ввести, чтобы не захламлять единственный фасад разнородной функциональностью. Он может использоваться как клиентом, так и другими фасадами.
  3. Сложная подсистема состоит из множества разнообразных классов. Для того, чтобы заставить их что-то делать, нужно знать подробности устройства подсистемы, порядок инициализации объектов и так далее.

Классы подсистемы «не знают» о существовании фасада и работают друг с другом напрямую.

  1. Клиент использует фасад вместо прямой работы с объектами сложной подсистемы.

Псевдокод

В этом примере фасад упрощает работу со сложным фреймворком видеоконвертации.

Пример изоляции множества зависимостей в одном фасаде

Вместо непосредственной работы с дюжиной классов фасад предоставляет коду приложения единственный метод для конвертации видео, который сам заботится о том, чтобы правильно сконфигурировать нужные объекты фреймворка и получить требуемый результат.