|
97 / 11 / 1
Регистрация: 14.03.2017
Сообщений: 196
|
|
Синглтон и стиль написания кода (теория)16.02.2020, 17:08. Показов 6328. Ответов 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 | |
|
Помогаю со студенческими работами здесь
60
Оцените на правильность кода и общий стиль написания Синглтон вызывает синглтон Правила написания кода Правила написания кода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|