現在、ConfigProfile factory という名前のクラスがあり、デフォルトのプロファイル、現在の設定などのメソッドが含まれています。このクラスは、プロファイル サービスによって内部的に使用されます。これを真のファクトリにして、構成する製品ごとに適切なプロファイル サービスを作成する方がよいのではないかと考えていました。
public string GetDefaultProfile(string product)
{
if (string.IsNullOrEmpty(product))
{
throw new ArgumentNullException("product");
}
string profile = null;
if (product.Contains("Product 1", StringComparison.CurrentCultureIgnoreCase) ||
product.Contains("product1", StringComparison.CurrentCultureIgnoreCase))
{
profile = Resources.product1DefaultProfile;
}
return profile;
}
これは 1 つの製品にすぎませんが、さらにいくつかの製品があるため、それぞれに if ステートメントを追加する必要があります。プロファイル サービスには既にインターフェイスがあり、私のプログラムのほとんどで使用されています。また、これと同じ方法を使用する方法がいくつかあります。製品名に基づいて適切なプロファイル サービスを返すファクトリは、より良い解決策でしょうか、それとも何か他にできることはありますか?
編集: これは、このクラスのより単純なメソッドの 1 つです。より複雑なものは、必要な場所から現在のシステム設定を取得するものです。すべての製品と同様に IIS 設定がありますが、テーマをサポートするものもあれば、データベース構成を行うものもあります。