У меня есть приложение, которое можно расширить с помощью defmethod
вызовов. Приложение должно быть расширено во время выполнения путем добавления новых пространств имен в путь к классам, которые содержат дополнительные вызовы defmethod
.
Я ищу решение для внедрения зависимостей. Возникает вопрос: как мое приложение узнает, какие пространства имен ему следует require
использовать, чтобы вызовы defmethod
могли действовать?
Одним из решений является наличие центрального файла конфигурации, содержащего имена пространств имен, которые могут потребоваться. Недостатком является то, что мне нужно редактировать конфигурации вручную, когда я хочу включить плагин.
Другой способ — каким-то образом динамически сканировать путь к классам на наличие дополнительных пространств имен и запрашивать их на основе предиката (например, префикса имени пространства имен).
Я нашел только эти два решения, но мне интересно, какие еще могут быть способы внедрения зависимостей во время выполнения в Clojure. И какие библиотеки обычно используются для этой цели?
Заранее спасибо.
defmulti
, для которого пользователи могут создавать методы? - person Carcigenicate   schedule 22.11.2018