Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Возможность создания КОП Singleton (число прочтений - 3622 )
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Возможность создания КОП Singleton
08. Августа 2008 :: 08:53
Печать  
Думаю не помешал бы такой функционал.
сейчас приходится создавать глобальную переменную и хранить в ней экземпляр класса.
Артур предложил такой вариант:
Цитата:
artbear  8 августа 2008 г.
а с другой стороны, кто мешает сделать один объект-синглтон типа
Структура или СЗ или АссоцВектор
и обращаться к разным сингтонам через глГлобальныеОбъекты.Получить("ИмяОбъекта") ?

но все же хочется обычный синглетон.

если кто не в курсе:
http://ru.wikipedia.org/wiki/%D0%9E%D0%B4%D0%B8%D0%BD%D0%BE%D1%87%D0%BA%D0%B0_(%...
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Возможность создания КОП Singleton
Ответ #1 - 08. Августа 2008 :: 09:01
Печать  
синглтоны полезны, когда обращение к ним идет очень часто.
Иначе они вредны, т.к. немножко кушают память.
это так чисто ИМХО.
+ для синглтона необходимо будет поколдовать над логикой классов.
  
Наверх
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Возможность создания КОП Singleton
Ответ #2 - 08. Августа 2008 :: 09:05
Печать  
полностью согласен. например у меня есть КОП Общие, который по сути замена ГМ.
обращение везде и часто. сейчас сделано через Переменную ГМ, но это не нравится.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Возможность создания КОП Singleton
Ответ #3 - 08. Августа 2008 :: 09:10
Печать  
Приходится заводить глобальные переменные-объекты классов, которые повсеместно используются, иногда неудобно - приходится лезть в глобальник всех баз при обновлении внешних отчетов, классов.
Единстевенный момент - как быть с синтаксис-контролем.

Кстати, я для себя нашел такое решение: при запуске конфы смотрю глобальник, если вижу, что каких то глобальный переменных нехватает, генерю доп. глобальник и гружу FormEx-ом
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Возможность создания КОП Singleton
Ответ #4 - 08. Августа 2008 :: 09:37
Печать  
В каждой своей конфе один раз заведите одну общую переменную-синглтон
Перем ГлобальныеОбъекты Экспорт;

После загрузки 1С++ напишите
ГлобальныеОбъекты = СоздатьОбъект("АссоциативныйВектор");

и добавляйте нужные объекты
ГлобальныеОбъекты.Добавить(Значение, ИмяОбъекта);

обращаться можно так
ГлобальныеОбъекты.ИмяОбъекта

Все просто Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Возможность создания КОП Singleton
Ответ #5 - 08. Августа 2008 :: 09:42
Печать  
честно говоря как раз недавно думал об этом Улыбка
потому что через СписокОбъектов.Получить("ИмяОбъекта") ну не очень красиво..
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Возможность создания КОП Singleton
Ответ #6 - 08. Августа 2008 :: 13:45
Печать  
artbear писал(а) 08. Августа 2008 :: 09:37:
Перем ГлобальныеОбъекты Экспорт;

После загрузки 1С++ напишите
ГлобальныеОбъекты = СоздатьОбъект("АссоциативныйВектор");

У меня так давно уже работает, только через структуру.
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Возможность создания КОП Singleton
Ответ #7 - 08. Августа 2008 :: 13:59
Печать  
есть маленький минус - интелисенс для таких объектов не будет выдвать список свойств и методов
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Возможность создания КОП Singleton
Ответ #8 - 11. Августа 2008 :: 00:57
Печать  
artbear писал(а) 08. Августа 2008 :: 09:37:
В каждой своей конфе один раз заведите одну общую переменную-синглтон
Перем ГлобальныеОбъекты Экспорт;

После загрузки 1С++ напишите
ГлобальныеОбъекты = СоздатьОбъект("АссоциативныйВектор");

и добавляйте нужные объекты
ГлобальныеОбъекты.Добавить(Значение, ИмяОбъекта);

обращаться можно так
ГлобальныеОбъекты.ИмяОбъекта

Все просто Улыбка

Это только в 3.0 или и в 2.5 есть ?
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Возможность создания КОП Singleton
Ответ #9 - 11. Августа 2008 :: 03:08
Печать  
В 2.5 то же самое можно через Структуру.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Возможность создания КОП Singleton
Ответ #10 - 11. Августа 2008 :: 07:01
Печать  
artbear писал(а) 11. Августа 2008 :: 03:08:
В 2.5 то же самое можно через Структуру.

Надо это взять на вооружение .... удобная фича.

А в 3.0 структура осталась, т.е. при переходе на 3.0 с 2.5 этот код перелопачивать не нужно будет ?
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Возможность создания КОП Singleton
Ответ #11 - 11. Августа 2008 :: 07:24
Печать  
ev-kov писал(а) 11. Августа 2008 :: 07:01:
А в 3.0 структура осталась, т.е. при переходе на 3.0 с 2.5 этот код перелопачивать не нужно будет ?

Конечно, почти 100% совместимость гарантируется.
Только не спрашивай про "почти", это другая тема Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать