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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Коллизия при загрузке классов 
:(
    Опции темы
omickron
  Дата 6.9.2012, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Приветствую, коллеги.

С Java работаю не очень давно, в связи с этим вопрос.

Как должно быть:
[*] Пользователь запускает консольную программу
[*] Ему предлагается выбрать из списка, какую фигуру нарисовать: круг, треугольник, квадрат, чёрта лысого...
[*] Он выбирает, что хочет нарисовать
[*] Рисуется фигура

Как реализовано:
[*] Иерархия классов фигур для отрисовки с общим наследником.
[*] В каждом конечном классе, который отрисовывается, есть код static {Cache.getInstance.registerClass();}, в котором делается регистрация в кэше.
[*] Кэш, в котором должны быть зарегистрированы все фигуры (название и созданный класс, который будет отрисовывать) - HashMap<String, Figure>
[*] Когда запускается программа, пользователю предлагается выбрать фигуру из содержимого кэша, т.е. кэш возвращает список <String>
[*] Пользователь выбирает фигуру, по имени-ключу находится <Figure>, у которой вызывается базовый метод Draw.
[*] Для того, чтобы добавить в функционал отрисовку новой фигуры, достаточно наследоваться от какой-то существующей и зарегистрировать в кэше.

Вопрос:
При запуске программы кэш должен уже содержать в себе все отрисовщики, чтоб спросить пользователя, что он хочет.
Но проблема в том, что классы отрисовщиков не загружаются в память до тех пор, пока не понадобятся.
Как быть?
PM MAIL   Вверх
LSD
Дата 6.9.2012, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Используй ServiceLoader.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Design, Quality, Testing | Следующая тема »


 




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


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

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