|
29.09.2010, 21:56
|
#1
|
Оператор ЭВМ
Регистрация: 13.09.2010
Сообщений: 20
Написано 0 полезных сообщений (для 0 пользователей)
|
Сингтон
А зачем вообще нужен синглтон, по мне так, ерунда какая-то, какие от нее практические преимущества?
|
(Offline)
|
|
29.09.2010, 21:58
|
#2
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Сингтон
Класс-менеджер, замена глобалов. Оч удобно в некоторых случаях.
Вообще читать
|
(Offline)
|
|
29.09.2010, 22:22
|
#3
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Сингтон
имхо, static классы лучше, если они в языке есть.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.09.2010, 14:46
|
#4
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Сингтон
А зачем вообще нужен синглтон, по мне так, ерунда какая-то, какие от нее практические преимущества?
|
если у тебя есть класс, отвечающий например за конечный вывод звука или допустим враппер д3ддевайса/ короче что-то, что вряд ли будет существовать больше чем в одном экземпляре, удобно юзать его через синглтон. глобалы - говно.
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
|
|
30.09.2010, 18:55
|
#5
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Сингтон
никогда не видел ДАО в синглтоне.
ИМХО, создание объекта и получение инстанса должно быть раздельным. и тут уже пропадают все минусы статик членов класса.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.09.2010, 19:30
|
#6
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Сингтон
а как жеж RAII, которое как известно наше всё???
|
(Offline)
|
|
22.10.2010, 12:58
|
#7
|
быдло
Регистрация: 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
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Сингтон
А в С++ можно сделать приватный конструктор? Потому что Singleton часто запрещает явное создание экземпляра класса помоему...
|
(Offline)
|
|
22.10.2010, 13:04
|
#9
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Сингтон
с чего это вдруг в С++ нельзя сделать приватный конструктор?) или я чот путаю
|
(Offline)
|
|
22.10.2010, 13:05
|
#10
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Сингтон
Я просто спросил... у тебя в примере просто его не было. Где там утверждение что нельзя?
|
(Offline)
|
|
22.10.2010, 13:08
|
#11
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Сингтон
ну у меня в примере ж вобще шарп) в С++ вроде ж даже нету проперти. И предидущий пост был немного шуткой)
|
(Offline)
|
|
22.10.2010, 14:05
|
#12
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: Сингтон
Сообщение от pax
А в С++ можно сделать приватный конструктор? Потому что Singleton часто запрещает явное создание экземпляра класса помоему...
|
Можно. Кроме того, приватными обязательно надо объявить еще и деструктор, конструктор копирования и оператор копирования. Иначе они неявно будут созданы компилятором в паблике и синглтон перестанет быть таковым, например:
MySingleton fuckingCopy = *MySingleton::Instance(); // конструктор копирования, однако
|
(Offline)
|
|
Эти 7 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
|
|
11.11.2010, 11:05
|
#13
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Сингтон
Подскажите практические преимущества использования функторов
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
11.11.2010, 13:04
|
#14
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Сингтон
Нет необходимости знать об объекте, которому ты вызываешь этот функтор. Вроде как один из паттернов подходит о независимости модулей. Хотя я сам с ними дела не имел прямого.
|
(Offline)
|
|
11.11.2010, 14:15
|
#15
|
Дэвелопер
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений (для 4,642 пользователей)
|
Ответ: Сингтон
callback-функции
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо .Squid за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:42.
|