Фасад (Facade) — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Участники)
(Участники)
Строка 18: Строка 18:
  
 
==== Участники====
 
==== Участники====
* Facade - фасад
+
* '''Facade''' - фасад
 
Знает, каким классам подсистемы адресовать запрос
 
Знает, каким классам подсистемы адресовать запрос
 
Делегирует запросы клиентов подходящим объектам внутри подсистемы
 
Делегирует запросы клиентов подходящим объектам внутри подсистемы
 +
 +
* '''Классы подсистемы'''
 +
* Реализуют функциональность подсистемы
 +
* Выполняют работу, порученную объекту Facade
 +
* Ничего не знают о существовании фасада
  
 
=== Пример ===
 
=== Пример ===

Версия 09:39, 5 августа 2014

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

Назначение

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

Описание

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

Назначение

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

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

Реализация

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

FacadeCommon.png

Участники

  • Facade - фасад

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

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

Пример

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

Варианты