У нас есть набор интерфейсов, например BookingInterface, InvoiceInterface, PaymentInterface, которые реализуются различными бизнес-процессамисистема плагинов Modular Java с помощью Guice
например
Business1BookingInterface implements BookingInterface {
}
Business1InvoiceInterface implements InvoiceInterface {
}
Business2BookingInterface implements BookingInterface {
}
Business2InvoiceInterface implements InvoiceInterface {
}
Мы смотрим на то, чтобы каждый бизнес-процесс плагин, который реализует набор интерфейсов.
В нашем остальное API мы хотели бы конкретный интерфейс плагина вводится в нашу службу
например
@Inject
public BillingService(Configuration configuration,
EventDispatcher eventDispatcher,
Map<String,PluginInterface> theCorrectInterfaceImplementation) {
}
Я отрываясь MapBindings, AssistedInjection и FactoryModuleBuilder, но не уверен, как в как мне получить правильную настройку Guice, чтобы внедрить необходимый интерфейс плагина во время выполнения.
Могу ли я использовать поставщиков вместе с MultiBinding? чтобы избежать круговых зависимостей? – user160108
Я ввел услуги, используя провайдер. Карта invoiceMap, и все работает хорошо. Больше круговых зависимостей. –
user160108