いつ静的クラスを使用するか、およびいつインスタンス クラスを使用することが推奨されるかに関する投稿を読みました。ただし、以下の例はその中間に位置する印象があります。
- クラス インスタンスは必要ありません。保存された状態は AppDomain 内のメンバー間で共有されます。
- 状態は、AppDomain 内のさまざまなクラス インスタンスからアクセスできる必要があります。
- 抽象化やオーバーライドは必要ありません。
だから、私の質問は次のとおりです。先に進んで静的として使用する必要がありますか、それともシングルトンの概念を使用する方が良いですか?
public static class SubscriptionManager
{
private static Dictionary<string, string> Repository { get; set; }
static SubscriptionManager()
{
Repository = new Dictionary<string, string>();
}
public static void Subscribe(string key, string value)
{
if (Repository.ContainsKey(key))
Repository[key] = value;
else
Repository.Add(key, value);
}
public static void Unsubscribe(string key, string value)
{
if (Repository.ContainsKey(key))
Repository.Remove(key);
}
public static string GetSubscription(string key)
{
if (Repository.ContainsKey(key))
return Repository[key];
else
return "";
}
}