あなたがしたいのはキャッシングです。これを実装するにはいくつかの方法がありますが、一般的な考え方は、以前に作成されたすべてのローカルを格納する構造を持ち、新しいものを作成するのではなく、最初にそのコレクションを検索することです。
1 つのオプションは、Dictionary<string, Locale>
. 文字列は「en-US」のような文字列になります。Locale
新しい最初のチェックを作成するたびに、 Dictionary
. もしそうなら、それを返すだけです。そうでない場合は、実際に新しいものを作成して に入れDictionary
ます。
public static class LocaleFactory
{
private static Dictionary<string, Locale> cache = new Dictionary<string, Locale>();
public static Locale GetLocal(string localeString)
{
Locale output;
if (cache.TryGetValue(localeString, out output))
{
return output;
}
else
{
output = new Locale(localeString);
//do other creation stuff for the Locale
cache.Add(localeString, output);
return output;
}
}
}