我正在開發可用於Android,Web和桌面應用程序的Java庫。該庫由幾個主要分離的模塊組成,這些模塊共享相同的配置設置(例如'enabled','api key')。如何管理Java庫的內部配置設置?
的配置應該允許在運行時(如API,JMX或SharedPreferemes在Android設備)變化不影響便攜性(例如,沒有數據庫),可測試性或線程安全的(有些模塊的目標在單獨的線程中運行)。
方法
我目前使用什麼是配置對象我在啓動時創建並傳遞到各個模塊(其本身把它傳遞給子類)。然後每個類將它需要的字段複製到本地字段 - 唯一的問題是:設置無法在運行時更改。
其他的想法:利用
- 靜態:很難測試
- 傳遞引用到模塊:線程安全的?
這裏最好的解決方案/最佳實踐是什麼?
UPDATE:只要是明確的,一個模塊並不需要知道,如果更改了的配置,但是應當簡單地直接使用該字段的新值,並從此與它的工作。
我又有自己的想法:通過包裹每個配置領域的ConfigItem我可以創建一個AndroidConfigItem 一個包裝分別獲得()檢查是否SharedPreferences已經改變想法嗎? –
stephanos
我想了一下,看看ehcache的源代碼,看看他們是如何做到的,並得出結論認爲Óscar的概念(觀察者模式)對我來說是最好的方法 – stephanos