Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.041 c
11-1108015146
Blure
2005-02-10 08:59
2005.10.16
Не прорисовываются иконки в TKolTreeView


2-1125911392
Антоний
2005-09-05 13:09
2005.10.16
Разбить несколько слов...


6-1119994627
wp2
2005-06-29 01:37
2005.10.16
Реципиент (RCPT) не тот?


3-1125468808
Programmer Andrey
2005-08-31 10:13
2005.10.16
Доступ к базе Paradox


2-1124979008
_Alex_2
2005-08-25 18:10
2005.10.16
создание exe





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский