Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Плагины в виде классов? Добавлено: 30.03.11 22:24  

Автор вопроса:  Morpheus | Web-сайт: xury.zx6.ru
Такой вопрос - как лучше делать некое подобие плагинов в объектно-ориентированных языках, работающих под управлением виртуальной машины, например?

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

Я подумывал сделать так - создать класс в виде

abstract class AbstractPlugin
{
public abstract byte[] applyPlugin(byte[] input) throws Exception;
}

... и чтоб прога могла читать файлы с классами, инстанциировать их, и вызывать этот вот метод... но как это сделать на Java/C# ? через сериализацию готовых объектов?

Может есть лучший способ? Не хотелось бы иметь дело с поинтерами, точками входа и прочей с++ницей, но если есть элегантые решения, можно и глянуть..

Заранее благодарен!

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 СанСаныч



Вопросов: 3
Ответов: 118
 Профиль | | #1 Добавлено: 31.03.11 00:35
Мне больше нравятся интерфейсы. Но это дело вкуса.
Про интерфейсы посмотри тут:
http://aleksey.nemiro.ru/my/articles/framework-net/Plug-ins.html
Также присмотрись к тому что уже встроено в дотнет:
http://msdn.microsoft.com/ru-ru/library/gg145020.aspx
Ну или если любитель садо-мазо то прошу к мефу в гости:
http://mef.codeplex.com/

Ответить

Номер ответа: 2
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #2 Добавлено: 31.03.11 04:11
Никаких поинтеров и т.п.
Не знаю как в Java, а в .NET делается очень просто.

В домен загружаешь сборку, с помощью Reflection анализируешь типы, которые в ней присутствуют (можешь, например, отобрать те типы, которые реализуют определенные интерфейсы).
После этого через Reflection создаешь экземпляры нужных объектов, можешь привести их к интерфейсам, с которыми будешь работать.

Можно использовать и абстрактный класс, но в этом случае я бы использовал именно интерфейсы.

Ответить

Номер ответа: 3
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #3 Добавлено: 31.03.11 04:16
http://vbnet.ru/articles/showarticle.aspx?id=152

Ответить

Номер ответа: 4
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #4
Добавлено: 03.04.11 04:23
Ок, походу я виден нечто похожее для Java как Артём показал, на днях попробую.. Уже благодарен!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам