Форум программистов, компьютерный форум CyberForum.ru

Паттерн проектирования «Фасад» - C++

Восстановить пароль Регистрация
 
Likeri
 Аватар для Likeri
5 / 5 / 1
Регистрация: 14.12.2011
Сообщений: 92
17.12.2012, 21:37     Паттерн проектирования «Фасад» #1
Здравствуйте. Можете по простому объяснить про паттерн проектирования «Фасад», его плюсы, минусы, для чего он...Читая на различных сайтах информацию о нем, все так заумно написано, что трудно понять, хотелось бы узнать о этом шаблоне вашими словами(не заумными). Прошу извинения за такой вопрос.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2012, 21:37     Паттерн проектирования «Фасад»
Посмотрите здесь:

Шаблоны проектирования C++
паттерн и строка C++ C++
C++ Паттерн Builder
C++ Объектно-ориентированного проектирования и проектирования на основе структур данных
C++ Паттерн декоратор
C++ Шаблоны проектирования
Паттерн стратегия C++
Паттерны проектирования (Фабрики) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
17.12.2012, 22:17     Паттерн проектирования «Фасад» #2
Если очень коротко, то мы прячем вызовы методов некоторых классов за вызовом метода нового класса, который и является фасадом. Это должно повысить читаемость кода
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
17.12.2012, 22:42     Паттерн проектирования «Фасад» #3
Окей. Представьте себе... менеджер памяти того же C#. Ну или даже менеджер памяти Си++. Это вагон с тележкой разнообразных подсистем: поколения, список недавно использованных блоков памяти, список свободных блоков, обходилка всей доступной памяти, какой-то менеджер глобальных параметров, а ещё менеджер собственно виртуальной памяти в системе, а у него свои списки.... А если посмотреть на саму виртуальную память, то там ещё кучи объектов режима ядра, какие-то PTE, кеши MMU и т. п. Всё это дико перевязано между собой, кто-то на кого-то полагается, кто-то кому-то отчитывается, полнейшая санта-барбара.

В общем, весь этот ансамбль работает, чтобы вы могли написать new Something() и получить указатель свой объект, не задумываясь о том, сколько там всего за кулисами происходит. Вот вам и типичный фасад.

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

Естественно, можно делать и фасады внутри фасадов, к которым обращаются фасады. Это просто уровень абстракции. Единственная проблема, которая с ними может возникнуть — это когда их слишком много и все они "текут" (не могут скрыть ту сложность, которую должны скрывать).
Yandex
Объявления
17.12.2012, 22:42     Паттерн проектирования «Фасад»
Ответ Создать тему
Опции темы

Текущее время: 08:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru