|
97 / 11 / 1
Регистрация: 14.03.2017
Сообщений: 196
|
|
Синглтон и стиль написания кода (теория)16.02.2020, 17:08. Показов 6502. Ответов 86
Метки нет (Все метки)
В общем, тут диспут о правильном написании кода.
Я знаю что такое синглтон, для чего он нужен и как реализуется. Однако меня интересует, нужен ли он в самом деле или нет. В своем движке я написал функции логгинга. Обернул это в namespace, так же обернул в макросы и был счастлив. В реализации другого движка я увидел, что он функции логгинга обернул через синглтон. Так вот, объясните, если какие-нибудь плюсы у синглтона по сравнению с моим подходом или наоборот минусы моего подхода по сравнению с сингтоном. З.Ы. Я в курсе, что синглтон - это антипаттерн.
0
|
|
| 16.02.2020, 17:08 | |
|
Ответы с готовыми решениями:
86
Стиль написания кода(читабельность и прочее) Стиль написания кода Стиль написания кода |
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 20.02.2020, 18:36 | |
|
avgoor,
Ок уберите приставку get. Где вы увидели что я об этом говорил? Об это речи не было, поэтому мне не понятны ваши претензии. Ок, объясните мне тогда что такое синглтон, сделайте доброе дело.
0
|
|
|
Комп_Оратор)
|
|
| 20.02.2020, 18:37 | |
|
avgoor, Шлее утверждает, что QApplication не реализован как синглтон. Хотелось бы видеть) Но да, понятие о синглтоне и его месте уже легенда. Есть люди которые предпочитают пепельницу велосипеду поскольку велосипедом неудобно ковырять в ухе.
Передача свойств типа в виде параметра шаблона может решать и решает много задач. Но состояние сохраняемо только в виде статических данных (если не предполагается создание объекта). С методами та же история. При чём тут сиглтон? Не говоря уже о том, что и сиглтон может быть параметризован.
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 20.02.2020, 18:39 | |
|
А потом посмотрим вместе на то что мои слова никак не идут в разрез с идеей синглтона
Добавлено через 1 минуту avgoor, IGPIGP, Я думаю вы просто не поняли/не разбирали пример. Приведите конкретные претензии или это разговор ниочем
0
|
|
|
Комп_Оратор)
|
||
| 20.02.2020, 18:41 | ||
|
0
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 20.02.2020, 18:41 | |
|
QApplication я упомянул как пример обьекта приложения. Это вспомогательный класс и не относится напрямую к обсуждаемому вопросу.
0
|
|
|
Комп_Оратор)
|
||
| 20.02.2020, 18:46 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 20.02.2020, 18:49 | ||
|
Undisputed,
спасибо за хороший материал. вот примерно такое я и хотел прочитать. я попозже отвечу. расскажешь, что это за фрукт, и как его правильно кушать?
0
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 20.02.2020, 18:55 | |
|
IGPIGP,
Как понять развалить? Был синглтон который потом был вытеснен Di. Самое занятное здесь то, что конкретных претензий в по моему примеру до сих пор нет, вместо этого идут сообщения в духе "ты ничего не понимаешь, иди учись". Именно по этой причине разговор ниочем. Добавлено через 1 минуту hoggy, Ок, не за что интересно твоё мнение
0
|
|
| 20.02.2020, 19:02 | |
|
Может где-то и вытеснен, однако пара моих свежих ИДЕ заботливо предлагает мне пункт Синглтон в перечне того, что может помочь создать
Но я ее не слушаю, и костылю все в статические поля или в поля объекта Аппликейшен, который менеджится уже системой как хочет. А про синглтоны я только стихи пишу, плагиатя у Лермонтова. IGPIGP знает
1
|
|
|
Комп_Оратор)
|
||||||
| 20.02.2020, 19:06 | ||||||
|
Undisputed,
0
|
||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
||||
| 20.02.2020, 19:10 | ||||
|
В любом случае, объект приложения - может быть только один. Как происходит его создание - вторично. Синглтон - не кусок кода для ctrl-c ctrl-v - а паттерн. Соответственно - это все детали реализации. Причем не только в Qt, а в любом фрэймворке. Как вам неоднократно говорили - проблема не в синглтоне, а в архитектуре приложения.
0
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 20.02.2020, 19:11 | ||
|
но в классе его не отметил потому что: 1. и так много буков было 2. надеялся что будет понятно и без создания поля явным образом
0
|
||
|
Комп_Оратор)
|
||||
| 20.02.2020, 19:19 | ||||
|
стр.30 Модуль QtCore - последняя фраза: Такой подход может избавить вас от нежелательного использования шаблона проектирования Singleton. ![]() Добавлено через 2 минуты
0
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||||
| 20.02.2020, 19:21 | |||||
|
0
|
|||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|||||
| 20.02.2020, 19:23 | |||||
|
Но он пишет, что не придется писать свои синглтоны, а не что
0
|
|||||
|
Комп_Оратор)
|
||
| 20.02.2020, 19:24 | ||
1
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 20.02.2020, 19:29 | ||
|
0
|
||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
||||||||||||
| 20.02.2020, 19:46 | ||||||||||||
|
Тогда объясните мне дураку разницу между
1
|
||||||||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 20.02.2020, 20:02 | ||
|
avgoor,
Не совсем понятно что вы имеете ввиду. Если речь о том что два примера идентичны по смыслу, то первый вариант предпочтительнее. Потому что суть передачи объекта в контроллер в данном случае заключается в том что бы контроллер мог его использовать. Контроллеру все равно этот объект синглтон или нет. Он этим фактом или его отсутствием никак не пользуется. Отсюда можно сделать вывод что синглтоновость роутеров в контексте контроллера ничего полезного в себе не несет. Следовательно синглтоны у нас в избытке. Если же это не то о чем вы спрашивали то уточните свой вопрос... Добавлено через 3 минуты Перед Di избытка не было т.к синглтон был применен к месту. Но в итоге одно вытеснило другое.
0
|
||
| 20.02.2020, 20:02 | |
|
Оцените на правильность кода и общий стиль написания Синглтон вызывает синглтон Правила написания кода Правила написания кода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
|
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
|
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
|
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
|
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|