Фасад
Facade
Тип структурный
Описан в Design Patterns Да

Шаблон фасад (англ. Facade) — структурный шаблон проектирования, позволяющий скрыть сложность системы путём сведения всех возможных внешних вызовов к одному объекту, делегирующему их соответствующим объектам системы.

Описание

править

Проблема

править

Как обеспечить унифицированный интерфейс с набором разрозненных реализаций или интерфейсов, например, с подсистемой, если нежелательно сильное связывание с этой подсистемой или реализация подсистемы может измениться?

Решение

править

Определить одну точку взаимодействия с подсистемой — фасадный объект, обеспечивающий общий интерфейс с подсистемой, и возложить на него обязанность по взаимодействию с её компонентами. Фасад — это внешний объект, обеспечивающий единственную точку входа для служб подсистемы. Реализация других компонентов подсистемы закрыта и не видна внешним компонентам. Фасадный объект обеспечивает реализацию GRASP паттерна Устойчивый к изменениям (Protected Variations) с точки зрения защиты от изменений в реализации подсистемы.

Особенности применения

править

Шаблон применяется для установки некоторого рода политики по отношению к другой группе объектов. Если политика должна быть яркой и заметной, следует воспользоваться услугами шаблона Фасад. Если же необходимо обеспечить скрытность и аккуратность (прозрачность), более подходящим выбором является шаблон Заместитель (Proxy).

Примеры

править

C++

править

JavaScript

править

CoffeeScript

править

PHP

править

Python

править

C#

править

Ruby

править

VB.NET

править

Delphi

править

Java

править

Haxe

править

Swift

править

Литература

править
  • Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. Приемы объектно-ориентированного проектирования. Паттерны проектирования = Design Patterns: Elements of Reusable Object-Oriented Software. — СПб.: «Питер», 2007. — С. 366. — ISBN 978-5-469-01136-1. (также ISBN 5-272-00355-1)

Источники и ссылки

править

📚 Artikel Terkait di Wikipedia

Николай II

and where all is inscrutable, he had to give the answers. His was the function of the compass-needle. War or no war? Advance or retreat? Right or left

Аддералл

Malenka R. C., Nestler E. J., Hyman S. E. Chapter 13: Higher Cognitive Function and Behavioral Control // Molecular Neuropharmacology: A Foundation for

MTProto

алгоритмом AES в режиме IGE. Получены с помощью KDF KDF (key derivation function) — функция формирования AES key и IV на основе msg_key и auth_key auth_key_id —

Application Services Library

ASL (произносится «а-эс-эл», англ. Application Services Library — библиотека услуг приложений) — это фреймворк, используемый в управлении приложениями

PyGTK

взаимодействия Python-программы с двоичным C-кодом: ctypes — A foreign function library for Python Архивная копия от 15 октября 2012 на Wayback Machine В этом

Си (язык программирования)

Set errno to zero before calling a library function known to set errno, and check errno only after the function returns a value indicating failure -

Суматриптан

Studies of Sumatriptan/Naproxen Sodium in the Acute Treatment of Migraine: Function, Productivity, and Satisfaction Outcomes (англ.) Acute treatment of paediatric

Тернарная условная операция

MsgBox iCount End Sub Public Function FuncYes() As String iCount = iCount + 1 FuncYes = "Да" End Function Public Function FuncNo() As String iCount = iCount