У меня есть фабричный класс, который создает объекты определенного типа (скажем, MyClass
).Лучший подход для загрузки динамического класса и пакета в Java
Класс фабрики относится к определенному пакету, и я хочу динамически переключаться между реализациями в этом пакете и более новой версией для целей тестирования.
Скажем, например, что исходный пакет pack1
и новая версия pack2
, с именами классов pack1.Factory
и pack2.Factory
. Выбор pack1
или pack2
будет задан с помощью простого параметра в файле свойств. Кроме того, тип MyClass
является общим для обоих пакетов, и следует использовать только обычную ванильную Java (т. Е. Сторонние библиотеки).
Я думаю об использовании Class.forName()
для загрузки pack1.Factory
или pack2.Factory
(в зависимости от указанного свойства), а затем путем вызова всех методов фабрики путем отражения.
Это лучший подход?
Я не согласен. Отражение, если используется добросовестно, прекрасно. Я думаю, было бы вполне уместно использовать его здесь. – ControlAltDel