今回は、デザインパターンの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:
コメント