Что такое шаблон оформления фасада? - PullRequest
179 голосов
/ 09 марта 2011

Является ли фасад классом, который содержит много других классов?

Что делает его шаблон дизайна?Для меня это как обычный класс.

Можете ли вы объяснить мне этот Фасад рисунок?

Ответы [ 20 ]

4 голосов
/ 30 октября 2016

Фасад обсуждает инкапсуляцию сложной подсистемы в единый интерфейсный объект. Это уменьшает кривую обучения, необходимую для успешного использования подсистемы. Это также способствует отделению подсистемы от ее потенциально многих клиентов. С другой стороны, если фасад является единственной точкой доступа для подсистемы, он ограничит возможности и гибкость, которые могут понадобиться «опытным пользователям».

Источник: https://sourcemaking.com/design_patterns/facade

4 голосов
/ 31 июля 2018

Существует очень хороший реальный пример схемы - Стартер двигателя .

Как водители, мы просто включаем ключ, и машина заводится.Как можно проще.За кулисами задействованы многие другие автомобильные системы (такие как аккумулятор, двигатель, топливо и т. Д.), Чтобы автомобиль успешно запускался, но они скрыты за стартером.

Как видите,стартер автомобиля это Фасад.Это дает нам простой в использовании интерфейс, не беспокоясь о сложности всех других автомобильных систем.

Подведем итоги:

Шаблон Facade упрощает и скрывает сложность больших блоков кода илиAPI, обеспечивающие более понятный, понятный и простой в использовании интерфейс.

4 голосов
/ 04 февраля 2013

Другой пример фасада: допустим, ваше приложение подключается к базе данных и отображает результаты в пользовательском интерфейсе.Вы можете использовать фасад, чтобы сделать ваше приложение настраиваемым, например, при работе с базой данных или с фиктивными объектами.Таким образом, вы будете выполнять все вызовы базы данных для класса фасадов, где он будет читать конфигурацию приложения и решит запустить запрос db или вернуть фиктивный объект.Таким образом, приложение становится независимым от БД в случае, если БД недоступно.

4 голосов
/ 09 марта 2011

Фасад - это класс с уровнем функциональности, который находится между инструментарием и законченным приложением, предлагая упрощенное использование классов в пакете или подсистеме. Цель шаблона Facade - предоставить интерфейс, который делает подсистему простой в использовании. - Извлечение из book Шаблоны проектирования в C #.

3 голосов
/ 28 января 2015

Шаблон проектирования - это общее многоразовое решение часто встречающейся проблемы в данном контексте при разработке программного обеспечения.

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

Шаблон фасада идеален при работе с большим количеством взаимозависимых классов или с классами, которые требуют использования нескольких методов, особенно когда они сложны в использовании или трудны для понимания. Класс фасадов - это «обертка», которая содержит набор элементов, которые легко понять и использовать. Эти члены получают доступ к подсистеме от имени пользователя фасада, скрывая детали реализации.

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

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

2 голосов
/ 06 января 2019

Это просто создание оболочки для вызова нескольких методов.У вас есть класс A с методами x () и y () и класс B с методами k () и z ().Вы хотите вызвать x, y, z сразу, чтобы сделать это, используя шаблон Facade, вы просто создаете класс Facade и создаете метод, скажем, xyz ().Вместо того, чтобы вызывать каждый метод (x, y и z) по отдельности, вы просто вызываете метод-обертку (xyz ()) класса фасадов, который вызывает эти методы.

Подобный шаблон - хранилище, но в основном для данныхуровень доступа.

2 голосов
/ 09 мая 2014

Все шаблоны проектирования - это некоторые классы, расположенные так или иначе, что подходит для конкретного приложения. Цель шаблона фасада - скрыть сложность операции или операций. Вы можете увидеть пример и узнать рисунок фасада у http://preciselyconcise.com/design_patterns/facade.php

1 голос
/ 12 августа 2017

Шаблон дизайна фасада входит в структурный шаблон дизайна.Короче говоря, фасад - это внешний вид.Это означает, что в шаблоне проектирования фасада мы что-то скрываем и показываем только то, что на самом деле требуется клиенту.Подробнее читайте в блоге ниже: http://www.sharepointcafe.net/2017/03/facade-design-pattern-in-aspdotnet.html

1 голос
/ 10 июля 2014

В основном это система очистки одного окна. Вы назначаете любую работу, которую она делегирует определенному методу в другом классе.

1 голос
/ 20 января 2018

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

...