|
Модераторы: LSD |
|
omickron |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 97 Регистрация: 12.2.2009 Репутация: нет Всего: 1 |
Приветствую, коллеги.
С Java работаю не очень давно, в связи с этим вопрос. Как должно быть: [*] Пользователь запускает консольную программу [*] Ему предлагается выбрать из списка, какую фигуру нарисовать: круг, треугольник, квадрат, чёрта лысого... [*] Он выбирает, что хочет нарисовать [*] Рисуется фигура Как реализовано: [*] Иерархия классов фигур для отрисовки с общим наследником. [*] В каждом конечном классе, который отрисовывается, есть код static {Cache.getInstance.registerClass();}, в котором делается регистрация в кэше. [*] Кэш, в котором должны быть зарегистрированы все фигуры (название и созданный класс, который будет отрисовывать) - HashMap<String, Figure> [*] Когда запускается программа, пользователю предлагается выбрать фигуру из содержимого кэша, т.е. кэш возвращает список <String> [*] Пользователь выбирает фигуру, по имени-ключу находится <Figure>, у которой вызывается базовый метод Draw. [*] Для того, чтобы добавить в функционал отрисовку новой фигуры, достаточно наследоваться от какой-то существующей и зарегистрировать в кэше. Вопрос: При запуске программы кэш должен уже содержать в себе все отрисовщики, чтоб спросить пользователя, что он хочет. Но проблема в том, что классы отрисовщиков не загружаются в память до тех пор, пока не понадобятся. Как быть? |
|||
|
||||
LSD |
|
|||
Leprechaun Software Developer Профиль Группа: Модератор Сообщений: 15708 Регистрация: 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. |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Design, Quality, Testing | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |