Фасад также обеспечивает последовательный и доступный в любой момент интерфейс для модулей. Это похоже на песочницу в архитектуре Николаса Закаса.
Все сообщения от модулей, адресованные медиатору, проходят через фасад, поэтому он должен быть весьма надежен. Его роль в этом взаимодействии — анализ сообщений, исходящих от модулей, и передача этих сообщений в медиатор.
В дополнение к предоставлению интерфейса, фасад также выступает в роли защиты, определяя с какими частями системы может взаимодейстовать модуль. Модули могут вызывать только свои собственные методы. Для доступа к другим компонентам системы модулям необходимо иметь специальное разрешение.
К примеру, модуль может отправить сообщение dataValidationCompletedWriteToDB
.
В подобных случаях задача фасада — убедиться, действительно ли этот модуль
имеет права на запись в базу данных. Таким образом, мы пытаемся предотвратить
проблемы с модулями, которые пытаются делать то, что они не должны.
Подведем итоги: медиатор представляет собой интерпретацию паттерна «подписчик/издатель», но он получает только те сообщения, которые нас действительно интересуют. За фильтрацию же всех сообщений отвечает фасад.