今回は、デザインパターンの1つであるSingletonパターンを作成してみます。
Singletonパターンは、そのクラスのインスタンスが1つしか生成されないことを保証することができます。
以下はC#におけるSingletonパターンのクラスコードです。
C#の例
public sealed class Singleton
{
/// <summary>
/// インスタンスの生成
/// </summary>
private static readonly Singleton _singleton = new Singleton();
/// <summary>
/// インスタンスを返すプロパティ
/// </summary>
public static Singleton Instance
{
get { return _singleton; }
}
/// <summary>
/// コンストラクタ
/// </summary>
private Singleton() {
}
}
コンストラクタの識別子がprivateであることに注目してください。これによりSingletonクラスのインスタンスは外部から作成することができません。
Singletonクラスのインスタンスがほしい場合はInstanceプロパティを参照します。Instanceプロパティは読み取り専用プロパティであり、クラス内部で生成されたインスタンスを返します。
以下にSingletonクラスの使用例を示します。
C#の例
static void Main(string[] args)
{
Singleton sng1 = Singleton.Instance;
Singleton sng2 = Singleton.Instance;
if (sng1 == sng2)
{
Console.WriteLine("sng1とsng2は同一のインスタンスです");
}
}
Please follow and like us:
コメント