Это довольно стандартный способ сделать это. Нет ничего плохого в этом.
Обычно вы бы выставили SPI и API , которые авторы плагинов могут использовать для реализации своего кода. Обычно эти классы упакованы как отдельный JAR, это позволяет иметь минимальную зависимость для создания плагина.
Есть несколько хороших примеров архитектуры плагинов, которые вы можете изучить:
JDBC предоставляет java.sql.Connection
и связывает классы, поэтому проекты баз данных могут реализовывать драйверы для Java.
SLF4J обрабатывает новые привязки каркаса логгера как плагины. Существует slf4-api
и slf4j-ext
зависимости , которые используются для реализации плагина.