Misanthrope
> Потому что мне на тебя насрать наверное.
насрать тебе проще ведь это лучшее что у тебя получается - высирать говнокод
Edisoni
У тебя ООП головного мозга.
ЗЫ Такие как ты не участвуют в реальных игровых проектах. Таких туда не допустят по-просту.
Вы годитесь только на собеседованиях гундосить заученными фразами, вместо того, что бы головой думать.
Еще такие как ты могут умничать на планерках перед начальством,
о том как они абстрактную фабрику прикрутили к проекту и как она теперь все проблемы решать должна,
а на деле проблем только больше становится:)
Edisoni
>тебе подогреть чего нить?
Нэ, это я написал равносильный твоему по вменяемости пост.
Я тоже не вижу никакого смысла в синглтонах. Зачем они нужны? Зачем может понадобиться запрещать создание нескольких экземпляров класса?
А я не запрещаю насильно создавать сколь угодно экземпляров, но в тоже время могу получить к глобальному объекту доступ из любого места так:
MemoryManager* lMemoryManager = Singleton<MemoryManager>::Instanse();
Либо же создать локальный:
MemoryManager* lMemoryManager = new MemoryManager();
Misanthrope
> а на деле проблем только больше становится:)
криворукость лечится мистер рельсы вам на руки.:)
Misanthrope
> У тебя ООП головного мозга.
Какое интересно заявление
Я вижу вы врач а не программист так почему вы лезете туда где плохо понимаете?
Misanthrope
> ЗЫ Такие как ты не участвуют в реальных игровых проектах. Таких туда не
> допустят по-просту.
Кажется снова просчитался мистер врач я уже участвую
Misanthrope
> Вы годитесь только на собеседованиях гундосить заученными фразами, вместо того,
> что бы головой думать.
> Еще такие как ты могут умничать на планерках перед начальством,
Проблемы прошлого?
Кажется тебя обошел на собеседовании такой вот человек, вот ты злишься а всего нужно книжки читать а а пока что вы годитесь только чтобы писать говнокод в реально ненужных проектах
ЗЫ. И пож избавь меня от своих оправданий и нытья, говори по сабжу
Edisoni
> такой вот типок
Ясно
Misanthrope
> Ясно
> говори по сабжу
Edisoni
> говори по сабжу
А чо о нем говорить, паттерны как паттерны
А ты все равно смешной:)
Misanthrope
> А ты все равно смешной:)
Ну вот и славненько :)
gammaker
> Я тоже не вижу никакого смысла в синглтонах. Зачем они нужны? Зачем может понадобиться запрещать создание нескольких экземпляров класса?
Как пример - работа с файловой системой, сетью, графикой и музыкой. Проще, когда все это делается в соответствующих менеджерах.
Даже у Apple дофига синглтонов, куда ни плюнь - [NSFileManager defaultManager], NSUserSettings, всякого рода манаджеры над картинками и т.п.
Иными словами синглтон нужен везде, где нужно обеспечить уникальность доступа к ресурсам и железу.
CasDev
> Как пример - работа с файловой системой, сетью, графикой и музыкой.
А конкретно-то в чём заключается нужда в них? Я как бы открываю файлы без них. Мой движок тоже не использует никаких синглтонов. Может быть несколько окон, несколько графических контекстов в них. Менеджеры у каждого контекста свои должны быть, то есть тоже не в единственном экземпляре.
CasDev
> Иными словами синглтон нужен везде, где нужно обеспечить уникальность доступа к
> ресурсам и железу.
А глобальные переменные или статические члены класса чем не катят?
Misanthrope
> У тебя ООП головного мозга.
Вы имеете что то против ООП? Вернемся к процедурному программированию?
> ЗЫ Такие как ты не участвуют в реальных игровых проектах.
Не хочу никого обидеть, но вот если честно... После прочтения ваших постов мне кажется что это вы не очень предстаавляете что такое участвие в реальных проектах.
А если по сабжу, то.. ВСЕ!!! должно быть в меру и к месту. Тогда и в сингелтоне и в других паттернах появится смысл.
gammaker
> А конкретно-то в чём заключается нужда в них? Я как бы открываю файлы без них.
Потому что синхронизация идет на уровне железа.
Но давай представим. В одном окне ты пишешь асинхронно в сейв, а во втором окне не дописав удаляешь файлик. Конечно, система позаботится о том, чтобы во втором окне файлик не удалился, но смысл понятен.
>А глобальные переменные или статические члены класса чем не катят?
Парни... А Вы вообще читали, ДЛЯ ЧЕГО был придуман синглтон? Какие проблемы с инициализацией он решал, как там с доступом из разных потоков?
Ну это чтобы азы не копипастить...
CasDev
> Какие проблемы с инициализацией он решал
Ну есть проблема порядка вызова конструкторов глобальных объектов, если они друг от друга зависят. Это оно? Но я считаю, что в таком случае их лучше оставлять неинициализированными и инициализировать уже самому в main'е. Например тот же лог. Не нужен - не инициализируем. При этом все обращения к логу будут игнорироваться. Нужен - инициализируем, выбираем в какие файлы его писать.
CasDev
> как там с доступом из разных потоков?
А что именно нужно? Синхронизация или по одному объекту на поток?
CasDev
> Но давай представим. В одном окне ты пишешь асинхронно в сейв, а во втором окне
> не дописав удаляешь файлик. Конечно, система позаботится о том, чтобы во втором
> окне файлик не удалился, но смысл понятен.
Что-то по-моему какой-то очень надуманный пример, либо я что-то не так представил. Желательно какой-нибудь более реальный пример, чтобы я сразу понял, что без синглона тут не обойтись.
CasDev
> Парни... А Вы вообще читали, ДЛЯ ЧЕГО был придуман синглтон?
Я что-то когда-то читал, но наверное подзабыл, потому что он мне никогда не нужен был. Предполагаю, что те проблемы, которые он решает, могли бы вообще не возникнуть, если попытаться рассмотреть такие вариант, что объектов может быть несколько и ограничивать их искусственно до одного необязательно или даже вредно. Либо вариант, что лучше подойдёт глобальный объект, который будет инициализироваться не сам, а пользователем библиотеки.
Я не говорю, что статические методы и глобальные объекты эквивалентны синглтону. Я спрашиваю, а не достаточно ли их, чтобы решить задачу?
Тема в архиве.