Форум: "Основная";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизПосоветуйте: Plugins... Найти похожие ветки
← →
френк (2005-09-22 04:37) [0]Ситуация следующая - непосредственно в приложении есть некий "центральный" класс, который обладает множеством методов и событий. Предполагается использование плагинов, которые бы имели доступ к методам этого класса. Как обычно реализуются подобные вещи?
На данный момент при загрузке плагина получаю из него информацию, какие события ему требуется обрабатывать, формирую некоторый список обрабатываемых событий в менеджере плагинов и перед выполнением события, непосредственно в "центральном" классе, опрашиваю менеджер, который гарантирует что будет выполнена предварительная обработка данных в том или ином плагине. Но проблема в том что не прочувствовал еще, как плагин может получить доступ к методам "центрального" класса, чтобы дальше реализовать свою работу, к примеру, тем или иным образом среагировать на событие путем изменения свойств "цетрального" класса или же выполнением определенных его методов.
Подскажите кто и как обычно поступает в подобных ситуациях. Надеюсь что нормально все объяснил ) Неужели тут выход один? Организовывать плагины в виде пакетов (bpl)? Посоветуйте, мастера!
← →
evvcom © (2005-09-22 09:06) [1]
> к примеру, тем или иным образом среагировать на событие
> путем изменения свойств "цетрального" класса или же выполнением
> определенных его методов.
Если предполагается изменение ограниченного количества свойств, вызов ограниченного количества методов, то можно экспортировать несколько функций для этого. Если же хочется получить полный доступ к методам и свойствам "центрального" класса, то используй интерфейсы. Хотя, наверное, в любом случае лучше интерфейс.
← →
wal © (2005-09-22 09:26) [2]
> Хотя, наверное, в любом случае лучше интерфейс.
Более того, считаю целесообразным все на СОМ завязать. Например, у меня похожая ситуация - "центральный класс" представляет собой COM-объект, плагины - тоже СОМ-объекты. Основное приложение загружая плагин передает ему ссылку на "центральный" объект приложения, соответственно плагин может делать с ним все, что разрешено, в том числе и подключаться к событиям этого объекта.
С уважением.
← →
REA (2005-09-22 10:51) [3]Я делал BPL, все отлично. Проблемы только при несовпадении версий модулей.
Можно еще через интерфейсы работать тоже с BPL - получится почти COM.
Что то недолюбливаю я этот COM - мороки с ним много и тяжеловато получается.
← →
wal © (2005-09-22 10:58) [4]
> [3] REA (22.09.05 10:51)
Тут в стает такой вопрос. Кто эти плагины разрабатывать будет? И на чем? У меня изначально предполагалось, что плагины могут писать сторонние разработчики. И есть у них Делфи или нет - мне эти вопросом задаваться совсем не хотелось. А СОМ можно писать практически на всем.
С уважением.
← →
френк (2005-09-23 13:29) [5]Огромное всем спасибо! СОМ действительно стоящее решение проблемы.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.049 c