C# で シングルトンパターン
時々使うけど、すぐ忘れるのでメモ。
デザインパターンのうち、Singletonパターン(1つしかインスタンスを生成しない)
コンストラクタのスコープを private に変更し、
GetInstance()メソッドでインスタンスを取得するようにするのが肝です。
sample_singleton.cs
// Singletonパターン
public sealed class SingletonClass
{
private static SingletonClass _singleInstance = new SingletonClass();
public static SingletonClass GetInstance()
{
return _singleInstance;
}
private SingletonClass()
{
//TODO: initialization
}
}
参考
追記
SharpDevelopなら、新規作成→(中略)→シングルトンクラス を選択すると、
一瞬で以下のように生成してくれるじゃないですかーやだ恥ずかしー(赤面)
SamplaSingletonClass.cs
using System;
namespace SampleLog4Net
{
/// <summary>
/// Description of ClassNullLogger.
/// </summary>
public sealed class ClassNullLogger
{
private static ClassNullLogger instance = new ClassNullLogger();
public static ClassNullLogger Instance {
get {
return instance;
}
}
private ClassNullLogger()
{
}
}
}