Шаблон стратегии декларативных услуг - PullRequest
0 голосов
/ 23 октября 2018

Я новичок в OSGI и декларативных службах и пытаюсь реализовать стратегию, но у меня возникают проблемы с получением компонентов, удовлетворенных и / или активных

Implementation Diagram

В моем BillConfig есть useMocks (), когда true, то Repo, который должен быть возвращен фабрикой, - это BillRepositoryInMemory, в противном случае это должен быть BillRepositoryREST.Как я могу получить доступ к абстракции этих репозиториев в моем BillDAO?

Спасибо

1 Ответ

0 голосов
/ 04 ноября 2018

Ваша настройка с Factory не выглядит оптимальной для использования OSGi.Вместо этого я предлагаю создать ссылки на хранилище как компоненты DS с требуемой политикой конфигурации.

Таким образом, вы можете активировать нужный компонент repo impl, предоставив ему конфигурацию.

В BillDAO вы можете затем использовать:

@Reference
BillRepository repo;

Этот подход полностью избегаетшаблон фабрики и делает ваши компоненты гораздо более слабосвязанными.

...