Service Locator パターンから構成アクセスをモデル化するのが好きです。これにより、必要な構成値を取得するための単一のポイントが得られ、それをアプリケーションの外の別のライブラリに配置することで、再利用とテスト容易性が可能になります。ここにいくつかのサンプル コードがあります。使用している言語はわかりませんが、C# で記述しました。
まず、ConfigurationItem をモデル化するジェネリック クラスを作成します。
public class ConfigurationItem<T>
{
private T item;
public ConfigurationItem(T item)
{
this.item = item;
}
public T GetValue()
{
return item;
}
}
次に、構成項目の public static readonly 変数を公開するクラスを作成します。ここでは、単に xml である構成ファイルから ConnectionStringSettings を読み取っています。もちろん、より多くのアイテムについては、任意のソースから値を読み取ることができます。
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"]];
}
}
次に、ConfigurationItem を使用する必要がある場合は、次のように呼び出します。
ConfigurationItems.ConnectionSettings.GetValue();
そして、タイプ セーフな値が返されるので、それをキャッシュしたり、好きなことをしたりできます。
サンプルテストは次のとおりです。
[TestFixture]
public class ConfigurationItemsTest
{
[Test]
public void ShouldBeAbleToAccessConnectionStringSettings()
{
ConnectionStringSettings item = ConfigurationItems.ConnectionSettings.GetValue();
Assert.IsNotNull(item);
}
}
お役に立てれば。