Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 29.09.2010, 21:56   #1
kdm
Оператор ЭВМ
 
Регистрация: 13.09.2010
Сообщений: 20
Написано 0 полезных сообщений
(для 0 пользователей)
Сингтон

А зачем вообще нужен синглтон, по мне так, ерунда какая-то, какие от нее практические преимущества?
(Offline)
 
Ответить с цитированием
Старый 29.09.2010, 21:58   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Сингтон

Класс-менеджер, замена глобалов. Оч удобно в некоторых случаях.
Вообще читать
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 29.09.2010, 22:22   #3
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Сингтон

имхо, static классы лучше, если они в языке есть.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (11.11.2010)
Старый 30.09.2010, 14:46   #4
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Сингтон

А зачем вообще нужен синглтон, по мне так, ерунда какая-то, какие от нее практические преимущества?
если у тебя есть класс, отвечающий например за конечный вывод звука или допустим враппер д3ддевайса/ короче что-то, что вряд ли будет существовать больше чем в одном экземпляре, удобно юзать его через синглтон. глобалы - говно.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
kdm (01.10.2010), Phantom (30.09.2010), Randomize (11.11.2010)
Старый 30.09.2010, 18:55   #5
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Сингтон

никогда не видел ДАО в синглтоне.

ИМХО, создание объекта и получение инстанса должно быть раздельным. и тут уже пропадают все минусы статик членов класса.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
kdm (01.10.2010)
Старый 30.09.2010, 19:30   #6
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Сингтон

а как жеж RAII, которое как известно наше всё???
(Offline)
 
Ответить с цитированием
Старый 22.10.2010, 12:58   #7
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Сингтон

иногда Синглтоны удобны когда нужно получить класс только по требованию, также Conrolы нельзя сделать статиками, но иногда возникает необходимость получить к нему доступ с других мест программы

class Singleton
        
{
            private static 
Singleton _instance;
            public static 
Singleton Instance
            
{
                
get
                
{
                    if (
_instance == null)
                    {
                        
_instance = new Singleton();
                    }
                    return 
_instance;
                }
            }
        } 
Также это удобно когда нужен допустим какойнибудь менеджер., и чтобы не беспокоится о том создан ли он или нет можно использовать такой способ
(Offline)
 
Ответить с цитированием
Старый 22.10.2010, 13:00   #8
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Сингтон

А в С++ можно сделать приватный конструктор? Потому что Singleton часто запрещает явное создание экземпляра класса помоему...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 22.10.2010, 13:04   #9
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Сингтон

с чего это вдруг в С++ нельзя сделать приватный конструктор?) или я чот путаю
(Offline)
 
Ответить с цитированием
Старый 22.10.2010, 13:05   #10
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Сингтон

Я просто спросил... у тебя в примере просто его не было. Где там утверждение что нельзя?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 22.10.2010, 13:08   #11
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Сингтон

ну у меня в примере ж вобще шарп) в С++ вроде ж даже нету проперти. И предидущий пост был немного шуткой)
(Offline)
 
Ответить с цитированием
Старый 22.10.2010, 14:05   #12
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Сингтон

Сообщение от pax Посмотреть сообщение
А в С++ можно сделать приватный конструктор? Потому что Singleton часто запрещает явное создание экземпляра класса помоему...
Можно. Кроме того, приватными обязательно надо объявить еще и деструктор, конструктор копирования и оператор копирования. Иначе они неявно будут созданы компилятором в паблике и синглтон перестанет быть таковым, например:
MySingleton fuckingCopy = *MySingleton::Instance(); // конструктор копирования, однако 
(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
Dream (22.10.2010), impersonalis (22.10.2010), Mr_F_ (22.10.2010), pax (22.10.2010), Phantom (22.10.2010), Randomize (11.11.2010), Reks888 (23.10.2010)
Старый 11.11.2010, 11:05   #13
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Сингтон

Подскажите практические преимущества использования функторов
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 11.11.2010, 13:04   #14
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Сингтон

Нет необходимости знать об объекте, которому ты вызываешь этот функтор. Вроде как один из паттернов подходит о независимости модулей. Хотя я сам с ними дела не имел прямого.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 11.11.2010, 14:15   #15
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: Сингтон

callback-функции
__________________

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо .Squid за это полезное сообщение:
impersonalis (11.11.2010), Randomize (11.11.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 05:13.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com