Использование шаблона фасада

Я имею честно говоря, я - вид размышления вслух здесь.. Но разве это не могло быть сделано с апплетом или некоторым видом (быть им Java или безотносительно), которому дают полномочия, которым доверяют (такие как это в зоне Интранет) или что-то?

май стоить исследовать то, какие полномочия могут быть даны каждой зоне?

После Google, я думаю, что у Вас определенно есть проблема, до сих пор большинство статей, которые я видел, включает печать к принтеры, подключенные к серверу .

, Если бы его внутреннее, было бы возможно направить печать с сервера на принтеры отдела/пользователя или что-то?

6
задан Rafał Dowgird 23 November 2009 в 10:10
поделиться

3 ответа

Фасад занимается интерфейсом, а не реализацией. Его цель - скрыть внутреннюю сложность за единым интерфейсом, который снаружи кажется простым. В примере из вашего вопроса фасад скрывает четыре класса (Order, OrderLine, Address, BasketItem) за одним методом.

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

Так почему же автор не использует здесь шаблон шаблона?

Было бы разумно сделать placeOrder шаблонный метод, если было несколько похожих версий операции.

9
ответ дан 8 December 2019 в 12:20
поделиться

Шаблон фасада подходит, когда у вас есть сложная система, которую вы хотите предоставить клиентам в упрощенном виде, или если вы хотите создать внешний коммуникационный уровень поверх существующей системы, несовместимой с ваша система. Это структурный образец . См. Здесь: http://en.wikipedia.org/wiki/Facade_pattern

Шаблон шаблона, с другой стороны, представляет собой шаблон поведения , который поможет вам при работе с внутренним реализация компонента. См. Здесь: http://en.wikipedia.org/wiki/Template_method_pattern

7
ответ дан 8 December 2019 в 12:20
поделиться

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

ОБНОВЛЕНИЕ: В упомянутой статье метод PlaceOrder имеет единственную реализацию, которая работает для всех заказов. Шаблон шаблона предназначен для прописывания ряда шагов, которые необходимо выполнить, но позволяет подклассам предлагать свои собственные реализации этих фиксированных шагов. Например, если вам нужно, чтобы заказы на телевизоры обрабатывались иначе, чем заказы на микроволновые печи, вы можете использовать шаблон шаблона, чтобы переопределить какой-то воображаемый метод DispatchParcel (чтобы отправить микроволновую печь в виде простого пакета, но телевизор с дополнительным сервисом, чтобы помочь поднять тяжелое устройство на верхний этаж) . В нашем случае нет необходимости в повторной реализации шагов ProcessOrder, поэтому нет необходимости в шаблоне шаблона, поскольку одна реализация подходит для всех типов заказов.

3
ответ дан 8 December 2019 в 12:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: