Войти
ПрограммированиеФорумОбщее

Синглтон (Singleton) (комментарии)

Страницы: 1 2 3 4 Следующая »
#0
19:49, 30 янв. 2014

Синглтон (Singleton) (комментарии)

Это сообщение сгенерировано автоматически.

#1
19:49, 30 янв. 2014

Синглтоны не нужны. Или почти не нужны.
http://programmers.stackexchange.com/questions/40373/so-singleton… bad-then-what

#2
20:18, 30 янв. 2014

aruslan, скучно.
Могу добавить только одно - есть техника работы с сингелтонами, которая умеет созависимые сингелтоны автоматически (почти). Никаких крэшей ни до main, ни после.


laMer007, на буржуйском влом читать. Аб чом тама?

#3
21:02, 30 янв. 2014

8 лет?!! Некрофилам - гип-гип ура!

laMer007
> Синглтоны не нужны.
Трудно не согласиться!
Вот этому ответу на вопрос _winnie стукнуло 8 лет:
Почему синглетоны - отстой?
Я не считаю, что что-то изменилось.

Kartonagnick
> есть техника работы с сингелтонами, которая умеет созависимые сингелтоны
> автоматически (почти).
Есть такие, и даже с регулируемым временем связывания!
Больше скажу - скоро уже 12 лет, как я зашипал такую в составе Microsoft Fighter Ace 3.x, взял грех на душу, каюсь.
Не было времени всё вычищать, к тому же я уже переключился на консоли тогда, и новый движок было интереснее писать.
Но ты прав: есть много всяких техник вырывать себе гланды, спору нет.

#4
21:11, 30 янв. 2014

aruslan, я встречал эту туфту несколько лет назад. Мне не удалось идентифицировать зерна рациональной логики ни тогда, ни сейчас.

#5
21:33, 30 янв. 2014

Kartonagnick
> Мне не удалось идентифицировать зерна рациональной логики

"Рациональная логика" (wtf?) не очень применима к ситуациям, когда страдающие Стокгольмским синдромом люди пишут везде A::getInstance().b(): уже слишком поздно взывать к разуму.

Сложнее всего - донести мысль, что 1) это неважно, но 2) потом будет сложно и 3) они тратят свою человекожизнь на обезьяний copy-paste.

#6
23:11, 30 янв. 2014

aruslan
> "Рациональная логика" (wtf?) не очень применима к ситуациям, когда страдающие
> Стокгольмским синдромом люди пишут везде A::getInstance().b():

1. Не обязательно, ибо это зависит от дизайна.
2. Употребляется, допустим, сообществом orge, дабы сие есть узнаваемый дизайн, что зверски экономит время.
3. Проблема то в чем? Писать везде где нужен сигнлетон :A::getInstance() это шандец проблема?

Вы в состоянии объяснить: в чем именно проблема?

#7
23:14, 30 янв. 2014

aruslan
Вы как опытный человек в синглотонах что скажите про большие системы? Синглтон или глобальный объект или протаскивание через конструктор?

#8
23:41, 30 янв. 2014

laMer007
Протаскиваешь через конструктор так называемый ServiceProvider
из которого достаешь все что тебе нужно

#9
23:46, 30 янв. 2014

всегда использую статические функции, с синглтонами всегда проблемы, особенно есть там еще завязаны библиотеки, и их больше одного.

#10
23:55, 30 янв. 2014

IROV..
> ServiceProvider
Хорошая идея. Думаю заюзать.
IOC container'ов точно под С++ готовых хороших нет на замену ручной передачи ServiceProvider? Хоть с параметром времени компиляции вместо идентификатора экземпляра объекта?

#11
3:50, 31 янв. 2014

Kartonagnick
>> "Рациональная логика" (wtf?) не очень применима к ситуациям, когда страдающие
>> Стокгольмским синдромом люди пишут везде A::getInstance().b():
> 1. Не обязательно, ибо это зависит от дизайна.
Не видел примеров удачного дизайна с синглтонами; возможно кому-то везет больше, ну или планка занижена.

> 2. Употребляется, допустим, сообществом orge, дабы
> сие есть узнаваемый дизайн, что зверски экономит время.
Референс на ОГР в качестве примера - это попытка потроллить или чтобы посмеяться всем вместе?
Последний раз когда я слышал про Огр - это был классический пример Стокгольмского синдрома.  К счастью, люди вроде выпиливают его, и во веки веков.

> 3. Проблема то в чем? Писать везде где нужен сигнлетон
> A::getInstance() это шандец проблема?
Да. Это в первую очередь неуважение к себе и к людям. Неуважение провоцирует говнокод. Говнокод ведет к страданию. Страдание приводит не на темную сторону, а в ряды пушечного мяса.

#12
7:50, 31 янв. 2014

aruslan
> Да. Это в первую очередь неуважение к себе и к людям
Почему? почему вызов статической функции - это неуважение к себе и к людям?

И вот вопрос, а чем заменить синглтон?
- Глобальные переменные? Убого. SoftPixel Engine, там все менеджеры в глобальных переменных - выглядит страшно, плюс реальная возможность забыть написать где-нибудь extern и получить два экземпляра одной сущности. Да еще и сильная связность из-за этого (то есть нельзя взять кусок кода отдельно от всей системы)
- ServiceProvider? Я видел такие решения в движках. Убого. Да еще и воняет кучей запахов (в терминах рефакторинга) - ибо класс, чье предназначение только передать данные другим классам - не нужен. Также увеличивает связность кода
- Передавать через функции... Так вообще спаггети получится. Да и много передавать, часто больше 10 сущностей

Я пока выбрал синглтоны... Может кто познавший дзен знает что-то еще более лучшее?

#13
9:29, 31 янв. 2014

war_zes
> Почему?
Вам это говорит бывший проповедник синглтонов. Наверняка у него была причина отречься от своей работы и не маленькая.

> Может кто познавший дзен знает что-то еще более лучшее?
В соседнем треде IOC Container (Inverse Of Control Container) предлагали.

#14
10:26, 31 янв. 2014

Сколько гениальных игровых движков умерло только благодаря синглетонам...

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.