Перейти к основному содержимому

Фасад (Facade)

Теория

Фасад - предоставляет унифицированный интерфейс к группе интерфейсов подсистемы. Определяет высокоуровневый интерфейс, упрощающий работу с подсистемой. Изолирует клиента от сложной подсистемы.

БСП

Примеры

Код

Допустим, в конфигурации есть подсистема взаимодействия с торговым оборудованием (терминалы, фискальные регистраторы и пр.):

// Библиотека работы с оборудованием
Функция ПодключитьТерминал(Порт, Скорость) Экспорт
Функция ОткрытьЧек(Терминал, Параметры) Экспорт
Функция ПробитьПозициюЧека(Терминал, Товар, Цена) Экспорт
Функция ЗакрытьЧек(Терминал) Экспорт
// + много других сложных методов

Чтобы упростить использование этого комплексного API, создадим фасад:

// Обработка "Фасад для торгового оборудования"

Функция ПробитьЧек(ТоварыВЧеке) Экспорт

Терминал = ПодключитьТерминал(...);

ОткрытьЧек(Терминал, ...);

Для Каждого Товар Из ТоварыВЧеке Цикл
ПробитьПозициюЧека(Терминал, Товар);
КонецЦикла;

ЗакрытьЧек(Терминал);

КонецФункции

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