Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Модульные системы 
:(
    Опции темы
ElectricalStorm
Дата 24.3.2004, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: 5
Всего: 9



задача такая - построить расширяемую модульную систему .
Тоесть построить некоторый интерфейс, реализуя который можно было бы построить модуль для некоторой системы

вопрос такой :
1. я где то читал что для решения такого рода задач существует дезайн паттерн ... какой ?

2. возможно есть стандарные решения таких задач например с помощью механизма reflection ?

Спасибо.



--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
rni
Дата 25.3.2004, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 10.3.2004

Репутация: 1
Всего: 3



tounge.gif Ты имеешь в виду Rational Rose?
--------------------
r-xr-xr-x 3 мусорных ведра корня 14312 9 января 2000 perl
PM MAIL ICQ   Вверх
ElectricalStorm
Дата 25.3.2004, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: 5
Всего: 9



нет
я имею ввиду реализацию системы так называемую систему плагинов при которой к скомпилиномуу проекту
прибаляется класс или несколько классов и получается расширеная функиональность !



--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
AntonSaburov
Дата 25.3.2004, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Есть такое понятие как паттерны (шаблоны) проектирования.

Книг по этой тематике можно найти - например, "Применение шаблонов в JAVA" Стелтинг С., Маасен О.
PM MAIL WWW ICQ   Вверх
ElectricalStorm
Дата 25.3.2004, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: 5
Всего: 9



я ее в руках сейчас держу ! smile.gif
найти что нужно не могу sad.gif


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
DarkDS
Дата 25.3.2004, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 11
Всего: 16



Цитата

2. возможно есть стандарные решения таких задач например с помощью механизма reflection ?

Возможно. Что то похожее мне приходилось реализовывать (у меня была задача написать конфигурироемое из конига дерево и изменяемые панели).
Могу привести пример реализации...
PM MAIL   Вверх
ElectricalStorm
Дата 25.3.2004, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: 5
Всего: 9



да я тоже про это думал но оказалась не то sad.gif

вот я тут вспомнил про java beans там компонентныйй подход очень похож на тот что мне надо

всвязи с этим вопрос как написать каркасное приложение а потом типа добавлять туда компоненты как плагины ?


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
DarkDS
Дата 25.3.2004, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 11
Всего: 16



О5 таки самый простой способ:
1. В каталоге приложений заводишь папку логин.
2. Придумываешь обязательный файл (типа описания плагина.) в котором указываешь какой класс нужно запускать.
3. Перебором загружаешь в класспасс все классы, привязанные к плагину (если больше одного...)
Если плагин должен будет ограничен одним классом, то этот пункт пропускается.
4. через рефлексию загружается класс из описания (приводится к интерфейсу плагина и тд и тп.)

Так же можно сделать проше. брать какой то каталог (плагинс) и пытатся запустить все что там есть. smile.gif Но тогда все плагины должны быть ограниченны одним классом и приводится к одному интерфейсу...
Добавлено @ 13:49
Кстати... Явабины тоже по своей структуре - нитерфес-реализация и грузятся в общем то тоже через рефлексию (но на уровне явамашины)
PM MAIL   Вверх
ElectricalStorm
Дата 25.3.2004, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: 5
Всего: 9



DarkDS вот спасибо Вам за совет гдето так я и собираюсь сделать .

не могли бы Вы пояснит что значит приведение к интерфейсу ?



--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
DarkDS
Дата 25.3.2004, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 11
Всего: 16



Есть интерфейс (к примеру IPlugin) с набором методов, к которым будут обращатся.
к примеру:
Код

public interface IPlugin
{
public void init( Map params );
public Map getEndResult();
}


далее загружаешь:
Код

Class clazz = Class.forName( name );
Object o = clazz.newInstance();
if ( o instanceof  IPlugin )
{
IPlugin plugin = (IPlugin)o;//приводим к интерфейсу плюгина
plugin.init(params); //работаем как с интерфейсом
}

PM MAIL   Вверх
ElectricalStorm
Дата 25.3.2004, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: 5
Всего: 9



Спасибо большое все понятно !


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
ElectricalStorm
Дата 26.3.2004, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: 5
Всего: 9



а можно подключать не class'ы а целые jar'ы ?


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
DarkDS
Дата 26.3.2004, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 11
Всего: 16



Напрямую нет. Можно считывать jar файл и уже считанные классы подгружать...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.