Я занимаюсь разработкой библиотеки Java, которую можно использовать в приложениях для Android, веб-приложений и настольных компьютеров. Библиотека состоит из нескольких в основном разделенных модулей, которые имеют общие параметры конфигурации (например, «включен», «ключ API»).
Цель
Конфигурация должна позволять изменения во время выполнения (например, API, JMX или SharedPreferemes в Android) без ущерба для переносимости (например, без базы данных) , тестируемость или безопасность потоков (некоторые модули работают в отдельную ветку).
подход
В настоящее время я использую объект конфигурации , который я создаю при запуске и передаю различным модулям (которые сами передают его подклассам). Каждый класс затем копирует необходимые поля в локальное поле - единственная проблема: настройки нельзя изменить во время выполнения.
Другие идеи:
- с использованием статического : трудно проверить
- передача ссылки на модули: поточно-ориентированные?
Какое здесь лучшее решение / лучшая практика?
ОБНОВЛЕНИЕ: Просто для ясности, модуль не должен знать, было ли внесено изменение в конфигурацию, он должен просто напрямую использовать новое значение поля и работать с ним с тех пор.