Автоматическая регистрация фабрики

Я только изучаю Java, и у меня возникли некоторые проблемы. Здесь у нас есть простой заводской шаблон:

public class SomeFactory {
    ...
     public static void registerProduct(String name, Class f)
}

public SomeProduct implements IProduct {
   static {
       SomeFactory.register("some product", SomeProduct.class);
   }
   ...
}

Все продукты должны зарегистрируйтесь на заводе.

Но перед использованием этого кода должны быть загружены все классы продуктов. Я могу поместить Class.forName () где-нибудь, например, в основную функцию. {{ 1}} Но я хочу избежать такой ручной загрузки классов. Я хочу просто добавить новые реализации IProduct , не обновляя другие части (например, SomeFactory или Основные методы и т. Д.). Но мне интересно, можно ли автоматически загружать некоторые классы (например, отмеченные аннотацией)?

P.S Я хочу отметить, что никакие другие классы не будут добавлены во время выполнения, все реализации IProduct известны до компиляции.

UPD # 1 Спасибо за ответ! Но можно ли создать автоматически созданный файл свойств с экземплярами IProduct ? {{1} } Я имею в виду, можно ли создать сценарий времени сборки (например, для maven), который генерирует файл свойств или код загрузчика? Существуют ли такие решения или фреймворки?

UPD # 2 Я закончил использовать Библиотеку отражений , которая предоставляет информацию о времени выполнения, путем сканирования пути к классам при запуске.

6
задан nmikhailov 8 October 2011 в 12:40
поделиться