Дизайн шаблона "Фасад" - PullRequest
7 голосов
/ 20 февраля 2012

Я работаю над проблемой шаблонов проектирования.В этом случае я хочу реализовать шаблон проектирования « Фасад »

. Я знаю, что « Cocoa Touch » предлагает нам комплексные решения для применения шаблонов проектирования в наших проектах (дляпример NSNotificationCenter - реализует шаблон проектирования наблюдателя)

У меня следующие вопросы: - есть ли у нас возможность использовать шаблон проектирования ' Фасад ', а также в случае наблюдатель шаблон проектирования.

Теперь я реализую ' Фасад ' следующим образом:

Например, у меня есть несколько классов, которые реализуют некоторые вычисления.Класс ' Facade ' объединяет все классы, которые мне нужны для расчетов.

Например, у меня есть классы A, B, C и Facade (которые содержат классы A, B и C).

Когда я хочу что-то вычислить, я просто создаю свой ' Фасад ' и передаю некоторый аргумент для вычисления.В этом случае я не знаю о классах A, B, C, и этот объект Facade предоставляет мне только одну точку доступа.

Этот шаблон проектирования инкапсулирует объекты и упрощает приложение.

Является ли этоправильная реализация?

Ответы [ 4 ]

7 голосов
/ 18 июня 2012

Еще один хороший пример реализации фасадного рисунка - услуга вызова пиццы.Например, сервис пиццы (подсистема) очень большой и состоит из трех отделов (интерфейсов): отдел заказов, отдел скидок, отдел доставки.У каждого отдела есть своя логика и интерфейсы.Вы можете просто реализовать рисунок фасада на нем. Здесь этот пример более подробно.

7 голосов
/ 20 февраля 2012

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

4 голосов
/ 20 февраля 2012

Это правильное объяснение (я не вижу реализации).Хорошей ассоциацией с шаблоном Facade в реальной жизни является дистанционное управление - вы можете запускать функции телевизора, DVD и т. Д.

1 голос
/ 20 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...