скрипты и плагины
От: anvaka Украина Yasiv
Дата: 30.07.05 12:00
Оценка:
Привет!
Как вы думаете, как лучше спроектировать программу, обладающую способностью поддержки скриптов и плагинов (причем скрипты, основываются на функциях из плагинов)?
У меня есть идея (ниже я ее изложу), но хотелось бы услышать ваше мнение. Может, уже есть некоторые паттерны?

Идея такова.
Плагины. Каждый модуль должен будет говорить мне свое имя, количество доступных функций для пользователя (расширяющие функциональность программы), имена этих функций (в двух экземплярах — один для того, чтобы показать пользователям, названия новых функций, второй для использования в скриптах). Ну и некоторую функцию (назвем ее Run(function_name), вызывающую функцию, которая соответсвтует i-му имени.

Далее скрипты. Скажем, был написан плагин my3d. имеющий единственную функцию, для рисования трехмерного куба, единичного размера. Для того чтобы нарисовать этот куб, пользователю достаточно будет ввести в срипте что-то вроде:
myd3d.cube;

Теперь, при старте программы, запоминаю все имена плагинов, соответсвующие хендлы этим именам. Когда вступает в работу ScriptEngine по перовму имени находим хендл, второе, в новом потоке, передаем в Run()...
Надеюсь, идея достаточно понятна и информативна.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.