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

Является ли адаптер контейнера контейнером - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Тесты по С++ http://www.cyberforum.ru/cpp/thread1785267.html
Появился первый тест по С++ для начинающих. http://www.cyberforum.ru/krtests.php?do=gotest&tststestid=5
C++ Ищу описание Pocketsphinx Можете дать хорошее описание ( туториал ) по pocketsphinx. Просто у меня весьма туго с английским http://www.cyberforum.ru/cpp/thread1784787.html
Multimap find the same key and sum up values C++
Доброе утро Хотел уточнить , потому что знаю, что можно так сделать, но как не знаю if (multimap.find(currentNode) == multimap.end()) { multimap.insert(pair<int,int>(nextNode, Totallength)); } else {
На каком языке написан Explorer.exe? C++
На каком языке написан explorer.exe? *не на русском
C++ Написать элегантнее класс для сложения больших чисел http://www.cyberforum.ru/cpp/thread1783904.html
Уважаемые тру программисты. Я написал класс для сложения больших чисел. Но вот смотрю на код и понимаю, что написано коряво. Смысл функции вроде бы прост. Идем справа налево и складываем числа, запоминая остаток. Глядя на код opensource проектов и прочее, мне кажется, что моё творение явно можно написать лучше. Тут и много строк, и как-то нелаконично, и куча переменных, несколько if. Помогите мне...
C++ Реальная задача для реального проекта для желающих покодить Привет:) Попросили сделать парсер сайта по-дружески, но у меня реально времени на него нет. Если кому-то интересно, могу двигать в нужном направлении и может, при желании, могу пинать за плохой код. Что нужно сделать - парсер с HTTP клиентом. Пример клиента на boost::asio скину, покажу как парсить HTML регулярками (да, есть библиотеки, но думаю руками будет интересней). Могу архитектуру... подробнее

Показать сообщение отдельно
hoggy
5992 / 2432 / 436
Регистрация: 15.11.2014
Сообщений: 5,396
Завершенные тесты: 1
26.07.2016, 17:33     Является ли адаптер контейнера контейнером
Цитата Сообщение от Kastaneda Посмотреть сообщение
т.к. я могу передать свой контейнер в адаптер, и данные будут хранится в моем контейнере, а не в queue
ну и что?
это вообще можно было бы назвать "деталями реализации",
если бы не было вынесено в интерфейс адаптера.

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

Цитата Сообщение от Kastaneda Посмотреть сообщение
Адаптер - это паттерн, по сути обертка. В данном случае - это обертка над контейнером.
это не просто "обертка".
смысл паттерна "адаптер" - адаптировать интерфейс существующего механизма,
для клиентов, которые ожидают отличный интерфейс.
но при этом бизнес-логика остается прежней.

например, у нас есть std::vector, со своим конкретным паблик-интерфейсом.
и есть клиентский код, которому нужен контейнер с точно такой же логикой,
но с другим паблик-интерфейсом.

мы оборачиваем std::vector нашим адаптером,
который определяет нужный клиентам паблик интерфейс,
и просто делегирует задачу std::vector.

в случае с queue все иначе.
хоть формально его и называют "адаптером".
однако это не имеет отношения к паттерну "адаптер".

потому что queue имеет собственный паблик интерфейс.
и собственную бизнес-логику.
которая не имеет ничего общего с теми контейнерами,
на которых он базируется.

грубого говоря, если мы уберем из интерфейса знание о контейнере,
на котором он базируется,
то получим "full container class".
а что там у него под капотом уже никого не должно касаться.
 
Текущее время: 02:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru