Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Реализация набора функйиональных модулей.. (число прочтений - 5052 )
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Реализация набора функйиональных модулей..
11. Августа 2008 :: 13:45
Печать  
Колеги, прошу поделиться опытом в решении следующей задачи:

Исходные данные: есть большое количество разнообразного функционала,
который хочется разбить на куски по принципу библиотек С++ и иметь возможность
легко "подключать" их в нужном месте, например:
"Система.Строки" - методы работы со строками
"Система.ДатаВремя" - методы работы с датой и временем
"Учет.Остатки" - методы работы с остатками товара
и т.д.

Текущее состояние: библиотеки реализоваеы в классах, в глобальнике
объявлены глобальные переменные-экземпляры классов,
(сделано для того, что бы не плодить экземпляры одних и тех же модулей)
переменные инициализируются при старте системы.

Недостатки: при добавлении нового модуля приходится каждый раз править глобальник.
пока решил так - при запуске анализируется глобальник,
если не найдено определение переменной, то через доп. глобальник они объявляются.

как вариант расматриваю решение с использованием Структуры или Вектора, т.е.
одна глобальная переменная "_Модули", инициализируется при запуске
доступ к экземплярам классов например так:
_Модули.FormEx.Система
_Модули.1cpp.Информатор
_Модули.СистемаСтроки
_Модули.СистемаДатаВремя
минус - не будет работать интелисенс

может есть еще какой-нибудь способ решить поставленную задачу?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #1 - 12. Августа 2008 :: 02:02
Печать  
Храни описание модулей в текстовом файле. При начале работы системы просто читаешь этот файл и добавляешь всё что там прописано в свой вектор "_Модули"
  
Наверх
ICQ  
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #2 - 12. Августа 2008 :: 04:45
Печать  
так и сделано Улыбка
есть текстовый файл со списком модулей, которые создаются при запуске системы в порядке указания в файле
(так как есть зависимости между ними, порядок инициализации важен)
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #3 - 12. Августа 2008 :: 04:52
Печать  
Тогда в чем проблемма?
  
Наверх
ICQ  
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #4 - 12. Августа 2008 :: 05:50
Печать  
CaBaT писал(а) 11. Августа 2008 :: 13:45:
Недостатки: при добавлении нового модуля приходится каждый раз править глобальник.

Если я тебя правильно понял, может тебе поможет то, что вчера Артур предложил: http://www.1cpp.ru/forum/YaBB.pl?num=1218453352
Очень похоже, что тебе нужно. Только вместо случайных имен - подгружать/создавать будешь конкретные
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #5 - 12. Августа 2008 :: 06:00
Печать  
Nick писал(а) 12. Августа 2008 :: 04:52:
Тогда в чем проблемма?


В текущей реализации мне не нравиться то, что так или иначе должна быть обявлена гнлобальная переменная для каждого модуля, который я хочу использовать в любом месте конфы.

В варианте со использованием "Структура" или "Вектор" мне не нравится то, что не будет работать интелисенс для таких модулей, так как они будут "завернуты" в список, структура которого формируется только в рантайме.
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #6 - 12. Августа 2008 :: 06:01
Печать  
AndreyM писал(а) 12. Августа 2008 :: 05:50:
CaBaT писал(а) 11. Августа 2008 :: 13:45:
Недостатки: при добавлении нового модуля приходится каждый раз править глобальник.

Если я тебя правильно понял, может тебе поможет то, что вчера Артур предложил: http://www.1cpp.ru/forum/YaBB.pl?num=1218453352
Очень похоже, что тебе нужно. Только вместо случайных имен - подгружать/создавать будешь конкретные


Видел, это не совсем то, что мне надо...
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #7 - 12. Августа 2008 :: 06:12
Печать  
Цитата:
В варианте со использованием "Структура" или "Вектор" мне не нравится то, что не будет работать интелисенс для таких модулей, так как они будут "завернуты" в список, структура которого формируется только в рантайме.


Интересно может можно это обойти просто добавив соотетствующие .ints. А вообще можещь просто переписать
интелисенс под себя
  
Наверх
ICQ  
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #8 - 12. Августа 2008 :: 06:17
Печать  
Nick писал(а) 12. Августа 2008 :: 06:12:
Цитата:
В варианте со использованием "Структура" или "Вектор" мне не нравится то, что не будет работать интелисенс для таких модулей, так как они будут "завернуты" в список, структура которого формируется только в рантайме.


Интересно может можно это обойти просто добавив соотетствующие .ints. А вообще можещь просто переписать
интелисенс под себя

Если я правильно понял, то CaBaT об этом и просит, кто может заточить интелисенс под глобПеременную "АссоциативныйВектор" !?
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #9 - 12. Августа 2008 :: 06:18
Печать  
Nick писал(а) 12. Августа 2008 :: 06:12:
А вообще можещь просто переписать
интелисенс под себя


такая мысль меня вчера уже посещала Улыбка
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #10 - 12. Августа 2008 :: 07:38
Печать  
PVR писал(а) 12. Августа 2008 :: 06:17:
Nick писал(а) 12. Августа 2008 :: 06:12:
Цитата:
В варианте со использованием "Структура" или "Вектор" мне не нравится то, что не будет работать интелисенс для таких модулей, так как они будут "завернуты" в список, структура которого формируется только в рантайме.


Интересно может можно это обойти просто добавив соотетствующие .ints. А вообще можещь просто переписать
интелисенс под себя

Если я правильно понял, то CaBaT об этом и просит, кто может заточить интелисенс под глобПеременную "АссоциативныйВектор" !?

Как вы себе представляете заточку-то?

И имя для подобной переменной "АссоциативныйВектор" плохое Улыбка - намного лучше глГлобальныеОбъекты.
  

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


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #11 - 12. Августа 2008 :: 12:34
Печать  
artbear писал(а) 12. Августа 2008 :: 07:38:
Как вы себе представляете заточку-то?

глГлобальныеОбъекты заполняется на основе текстовика-описания вроде
Код
Выбрать все
Строки : Система.Строки
Даты  :  Система.ДатаВремя
Остатки:Учет.Остатки
... 


И этот же файл анализирует Интелл, перенаправляясь на соответствующий КОП после второй точки
Код
Выбрать все
глГлобальныеОбъекты.Даты.<ой_кто_здесь> 


...
  
Наверх
ICQ  
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #12 - 12. Августа 2008 :: 12:41
Печать  
Артур, может намекнешь, как бы так интелисенс подкрутить, что бы он всегда для переменной вида
Код
Выбрать все
Объект.Свойство 


Если имя поля "Свойство" есть название какого-либо класса или объекта, выдавал бы его методы и свойства после нажатия точки, например
Код
Выбрать все
ГлобальныеОбъекты.СистемаСтроки. 


и здесь вылезает список свойств класса "СистемаСтроки"

т.е. по сути, если найдено вхождение строки вида ".ИмяКлассаИлиОбъекта.", то выдается список его свойств
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #13 - 12. Августа 2008 :: 12:58
Печать  
CaBaT писал(а) 12. Августа 2008 :: 12:41:
Артур, может намекнешь, как бы так интелисенс подкрутить, что бы он всегда для переменной вида
Код
Выбрать все
Объект.Свойство 


Если имя поля "Свойство" есть название какого-либо класса или объекта, выдавал бы его методы и свойства после нажатия точки, например
Код
Выбрать все
ГлобальныеОбъекты.СистемаСтроки. 


и здесь вылезает список свойств класса "СистемаСтроки"

т.е. по сути, если найдено вхождение строки вида ".ИмяКлассаИлиОбъекта.", то выдается список его свойств

Про имя класса я еще могу понять, а про имя объекта это как??
  

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


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Реализация набора функйиональных модулей..
Ответ #14 - 12. Августа 2008 :: 13:06
Печать  
Ну я имел ввиду например объект "Сервис" из "FormEx"
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать