我正在开发一个可以在Android,Web和桌面应用程序中使用的Java库。该库由几个主要分离的模块组成,这些模块共享通用配置设置(例如“启用”,“api密钥”)。
目标
配置应允许在运行时更改(例如Android中的API,JMX或SharedPreferemes),而不会影响可移植性(例如,无数据库),可测试性或线程安全性(某些模块在一个单独的线程中运行。)
方法
我目前使用的是配置对象,我在启动时创建并传递给各个模块(它们自己将它传递给子类)。然后每个类将所需的字段复制到本地字段 - 唯一的问题:在运行时无法更改设置。
其他想法:
这里最好的解决方案/最佳做法是什么?
更新:为了清楚起见,模块不需要知道是否对配置进行了更改,它应该直接使用字段的新值并从此开始使用它。
答案 0 :(得分:1)
一些建议: