Обзор темы [Шаблоны проектирования]

Затем: МотивацияНазначение

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

Затем: СтруктураМотивация

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

Рассмотрим например среду программирования, которая дает приложениям доступ к своей подсистеме компилятора. Эта подсистема содержит классы типа Scaner, Prser, ProgramNode, BytecodeStream, и ProgramNodeBuilder, которые составляют компилятор. Некоторые специализированные приложения могли бы обратиться к этим классам непосредственно. Но большинство клиентов компилятора вообще не интересуются подробностями синтаксического анализа и генерации объектного кода; они просто хотят скомпилировать некоторый код. Для них использование мощных интерфейсов низкого уровня в подсистеме компилятора только усложняют работу.

Чтобы обеспечить интерфейс более высокого уровня, который может оградить клиента от всех этих подробностей, опишем класс Compiler. Этот класс определяет объединенный интерфейс к функциональным возможностям компилятора. Класс Compiler действует как фасад: Он предлагает клиенту одиночную часть, простой интерфейс к подсистеме компилятора. Он склеивает вместе классы, которые выполняют функциональные возможности компилятора. Фасад компилятора делает жизнь проще для большинства программистов без сокрытия функциональных возможности низкого уровня от немногих, кому он нужен.

Затем: Составные частиСтруктура

Составные части