forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Сингтон (http://forum.boolean.name/showthread.php?t=13429)

kdm 29.09.2010 21:56

Сингтон
 
А зачем вообще нужен синглтон, по мне так, ерунда какая-то, какие от нее практические преимущества?:dontknow:

pax 29.09.2010 21:58

Ответ: Сингтон
 
Класс-менеджер, замена глобалов. Оч удобно в некоторых случаях.
Вообще читать

ffinder 29.09.2010 22:22

Ответ: Сингтон
 
имхо, static классы лучше, если они в языке есть.

Mr_F_ 30.09.2010 14:46

Ответ: Сингтон
 
Цитата:

А зачем вообще нужен синглтон, по мне так, ерунда какая-то, какие от нее практические преимущества?
если у тебя есть класс, отвечающий например за конечный вывод звука или допустим враппер д3ддевайса/ короче что-то, что вряд ли будет существовать больше чем в одном экземпляре, удобно юзать его через синглтон. глобалы - говно.

HolyDel 30.09.2010 18:55

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

ИМХО, создание объекта и получение инстанса должно быть раздельным. и тут уже пропадают все минусы статик членов класса.

ffinder 30.09.2010 19:30

Ответ: Сингтон
 
а как жеж RAII, которое как известно наше всё???

Dream 22.10.2010 12:58

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

PHP код:

class Singleton
        
{
            private static 
Singleton _instance;
            public static 
Singleton Instance
            
{
                
get
                
{
                    if (
_instance == null)
                    {
                        
_instance = new Singleton();
                    }
                    return 
_instance;
                }
            }
        } 

Также это удобно когда нужен допустим какойнибудь менеджер., и чтобы не беспокоится о том создан ли он или нет можно использовать такой способ

pax 22.10.2010 13:00

Ответ: Сингтон
 
А в С++ можно сделать приватный конструктор? Потому что Singleton часто запрещает явное создание экземпляра класса помоему...

Dream 22.10.2010 13:04

Ответ: Сингтон
 
с чего это вдруг в С++ нельзя сделать приватный конструктор?) или я чот путаю

pax 22.10.2010 13:05

Ответ: Сингтон
 
Я просто спросил... у тебя в примере просто его не было. Где там утверждение что нельзя?

Dream 22.10.2010 13:08

Ответ: Сингтон
 
ну у меня в примере ж вобще шарп) в С++ вроде ж даже нету проперти. И предидущий пост был немного шуткой)

Knightmare 22.10.2010 14:05

Ответ: Сингтон
 
Цитата:

Сообщение от pax (Сообщение 165588)
А в С++ можно сделать приватный конструктор? Потому что Singleton часто запрещает явное создание экземпляра класса помоему...

Можно. Кроме того, приватными обязательно надо объявить еще и деструктор, конструктор копирования и оператор копирования. Иначе они неявно будут созданы компилятором в паблике и синглтон перестанет быть таковым, например:
PHP код:

MySingleton fuckingCopy = *MySingleton::Instance(); // конструктор копирования, однако 


impersonalis 11.11.2010 11:05

Ответ: Сингтон
 
Подскажите практические преимущества использования функторов

pax 11.11.2010 13:04

Ответ: Сингтон
 
Нет необходимости знать об объекте, которому ты вызываешь этот функтор. Вроде как один из паттернов подходит о независимости модулей. Хотя я сам с ними дела не имел прямого.

.Squid 11.11.2010 14:15

Ответ: Сингтон
 
callback-функции


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot