Фасад (Facade)

Материал из Вики ИТ мехмата ЮФУ
Версия от 09:39, 5 августа 2014; Admin (обсуждение | вклад) (Участники)

Перейти к: навигация, поиск

К основной странице курса

Назначение

Предоставляет простой интерфейс к большой системе, которая обычно представляет множество взаимосвязанных классов.

Описание

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

Назначение

Паттерн Фасад используется:

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

Реализация

Диаграмма классов

FacadeCommon.png

Участники

  • Facade - фасад

Знает, каким классам подсистемы адресовать запрос Делегирует запросы клиентов подходящим объектам внутри подсистемы

  • Классы подсистемы
  • Реализуют функциональность подсистемы
  • Выполняют работу, порученную объекту Facade
  • Ничего не знают о существовании фасада

Пример

Достоинства и недостатки

Варианты