![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| sandello |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 18.5.2005 Где: Пермь Репутация: нет Всего: 2 |
Представим небольшой проект, определющий набор фабричных интерфейсов и использующий их. Особенность в том, что инициализацию фабрик проводится внутри проекта.
Один из методов реализации: в конфигурационном файле проекта описывается, какими классами нужно инициализировать фабрики. При старте проект читает файл, сознает необходимые экземпляры. Особенности: необходимо в документации проекта декларировать наличие определенного конструктора (чаще всего - конструктора без аргументов). В противном случае, фабрику, реализующую нужный интерфейс, может быть невозможно создать. И соответствие реализации необходимым ограничениям можно проверить только самому. Вопрос: какие шаблоны, готовые механизмы используются для решения подобной задачи. Подобную задачу решает штатный java механизм, использующий META-INF/services, на сколько он "кошерен"? Может есть более качественные/удобные решения? -------------------- ![]() |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Это классическая задача для шаблона проектирования Inversion of Control и облегченных контейнеров, например PicoContainer, Spring или веб-фреймворка WebWork. Упомянутые библиотеки этот шаблон реализуют.
Про Inversion of Control можно почитать здесь на английском или на русском. |
|||
|
||||
| sandello |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 18.5.2005 Где: Пермь Репутация: нет Всего: 2 |
Задача-то классическая. Но мне не хочется тащить целый фреймворк для инициализации одной-двух фабрик.
-------------------- ![]() |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
PicoContainer - размером 99К
|
|||
|
||||
| sandello |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 18.5.2005 Где: Пермь Репутация: нет Всего: 2 |
Мне у Pico лицензия не нравится. Есть GPL'ные аналоги?
-------------------- ![]() |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |