Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
Комбинатор
 Аватар для DenQ
980 / 252 / 13
Регистрация: 10.03.2010
Сообщений: 3,556

Как называется паттерн?

29.09.2014, 11:37. Показов 3443. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

По работе, пришлось реализовать некую структуру, где за основу был взять паттерн Одиночка.
Принцип работы заключается вот в таком вызове
ChatView::getInstance(chatId, type)

т.е., при вызове метода getInstance с определенными параметрами, в списке экземпляров ищется экземпляр, удовлетворяющий условиям(параметром) и если он найден, то он и возвращается, иначе создается новый элемент в списке, и он же и возвращается

Этот список содержит экземпляры своего класса.

Как может называется подобная реализация паттерна Одиночка?

ЗЫ. На ум приходят хеши, или уникальный индекс, по 2 параметрам в данном случае.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.09.2014, 11:37
Ответы с готовыми решениями:

Как называется паттерн?
здравствуйте, в общем начитался тут всякого: http://mariusbancila.ro/blog/2014/10/15/extension-methods-in-cpp/ сам раньше кодил...

Почему паттерн абстрактная фабрика - паттерн уровня объектов, если в нём могут быть статические отношения?
Взято из Шевчук А., Охрименко Д., Касьянов А. Design Patterns via C#. Приемы объектно-ориентированного проектирования (2015): Почему...

Как реализовать паттерн
Как реализовать паттерн с помощью интерфейсов C++

26
157 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 21
10.02.2015, 19:49
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Serg046 Посмотреть сообщение
а это "по-русски" пул объектов
По-вашему, Serg046, Identity Map*— это пул объектов? Хотите сказать, в объектном пуле объекты возвращаются по ключу, и при указании одного и того же ключа пул всякий раз возвращает один и тот же объект?
По-моему, Identity Map*— ещё одно название Multiton'а. Вы так не считаете?
1
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
10.02.2015, 19:57
Цитата Сообщение от tolik89u Посмотреть сообщение
По-моему, Identity Map*— ещё одно название Multiton'а. Вы так не считаете?
ваша правда, не знаю почему ступил, но мультитон здесь, имхо точнее.
Цитата Сообщение от tolik89u Посмотреть сообщение
и при указании одного и того же ключа пул всякий раз возвращает один и тот же объект
оптимально, но не всегда возможно. Например, если в пуле объекты, которые не могут менять свое состояние, то да, именно один и тот же объект пул и должен возвращать.
0
157 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 21
10.02.2015, 20:40
Цитата Сообщение от Serg046 Посмотреть сообщение
если в пуле объекты, которые не могут менять свое состояние, то да, именно один и тот же объект пул и должен возвращать
Пул, который возвращает один и тот же экземпляр объекта при одинаковых вызовах*— это не пул, а мультитон.
0
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
10.02.2015, 20:42
Цитата Сообщение от tolik89u Посмотреть сообщение
Пул, который возвращает один и тот же экземпляр объекта при одинаковых вызовах*— это не пул, а мультитон.
да. Однако, пул этого не гарантирует, пусть и старается.
0
157 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 21
10.02.2015, 20:51
Serg046, если клиент1 запросил новый объект из пула, и пул выдал ему экземпляр1, то теперь ни один запрос объекта данного типа любым другим клиентом, или даже клиентом1, не получит экземпляр1, пока клиент1 не вернёт экземпляр1 в пул, потому что экземпляр1 помечен как занятый. Если же объекты не могут менять свои состояния, и пул вернёт любому клиенту экземпляр1, пока экземпляр1 занят первым вызовом клиента1, то такой пул уже нельзя назвать пулом, потому что он не выполняет своих обязательств, в которые входит следить за тем, чтобы занятые объекты не использовались. Так что утверждение
если в пуле объекты, которые не могут менять свое состояние, то да, именно один и тот же объект пул и должен возвращать
неверно. Пул вернёт тот же экземпляр только после того, как тот освободится, и пул выполнит его сброс (очистку). И это не зависит от способности объекта менять своё состояние.
0
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
10.02.2015, 20:53
tolik89u, ок.
Тогда назрел вопрос как назвать "пул", который может опрерировать объектами для чтения (но и другими)? Некая смесь пула с мультитоном.
0
157 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 21
11.02.2015, 20:51
Так и назвать: гибрид объектного пула и мультитона. Вообще, гибридные шаблоны проектирования очень даже существуют, но не рекомендуются к использованию во избежание путаницы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.02.2015, 20:51

Паттерн матчинг, как выкрутиться
Добрый день Есть у меня вот такой код в проекте: --доступные команды станка data Command = G0 Params | G1 Params | F...

Как вы используете паттерн Observer?
Я изучил этот паттерн и использовал его в своей программе. У меня класс Контроллер является Наблюдателем и создаёт observable объекты,...

Паттерн как исключить пробел
Добрый день. Подскажите как сделать проверку на наличие только символов a-zA-z написал такой код: public static boolean...

Как реализовать Observer паттерн
Необходимо реализовать Observer паттерн. Реализация через public void Publish<TEvent>(TEvent publishEvent); public void...

Как реализировать паттерн Memento?
Хочу реализировать паттерн memento .Моя проблема заключается в тому ,что я хочу сохранить состояние игры даже когда юзер закрыл игру ....


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru