Вниз
Скачать: CL | DM;

Посоветуйте: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: -0.977 c
4-1124136831
ronyn
2005-08-16 00:13
2005.10.16
Ошибка при завершении работы ОС


2-1126689186
Andrushk
2005-09-14 13:13
2005.10.16
Перекрестные ссылки


2-1125918658
Андрей гость
2005-09-05 15:10
2005.10.16
что такое alias


1-1127756905
Mameluke
2005-09-26 21:48
2005.10.16
Преобразование указателя в строку


3-1125569408
Маленький мук
2005-09-01 14:10
2005.10.16
Поле TIME в таблице PARADOX - как обратиться в запросе?




   Наверх