我喜歡將我的配置訪問建模爲服務定位器模式。這給了我一個單獨的觀點來獲取我需要的任何配置值,並將它放在應用程序之外的獨立庫中,它允許重用和可測試性。以下是一些示例代碼,我不確定您使用的是什麼語言,但我使用C#編寫了它。
首先我創建一個泛型類來模擬我的ConfigurationItem。
public class ConfigurationItem<T>
{
private T item;
public ConfigurationItem(T item)
{
this.item = item;
}
public T GetValue()
{
return item;
}
}
然後,我創建一個類,爲配置項目公開靜態只讀變量。這裏我只是從配置文件中讀取ConnectionStringSettings,它只是xml。當然對於更多的項目,您可以閱讀任何來源的值。
public class ConfigurationItems
{
public static ConfigurationItem<ConnectionStringSettings> ConnectionSettings = new ConfigurationItem<ConnectionStringSettings>(RetrieveConnectionString());
private static ConnectionStringSettings RetrieveConnectionString()
{
// In .Net, we store our connection string in the application/web config file.
// We can access those values through the ConfigurationManager class.
return ConfigurationManager.ConnectionStrings[ConfigurationManager.AppSettings["ConnectionKey"]];
}
}
後來,當我需要使用的形態項目,我這樣稱呼它:
ConfigurationItems.ConnectionSettings.GetValue();
,它將返回我一個類型安全的值,然後我就可以緩存或做任何我想。
這裏有一個樣本測試:
[TestFixture]
public class ConfigurationItemsTest
{
[Test]
public void ShouldBeAbleToAccessConnectionStringSettings()
{
ConnectionStringSettings item = ConfigurationItems.ConnectionSettings.GetValue();
Assert.IsNotNull(item);
}
}
希望這有助於。